2016-08-18 67 views
-1

我想轉換字符串,它是以dd/MM/yyyy格式來自日曆控件。我試圖轉換成MM/dd/yyyy格式。C#DateTime從Sting dd/MM/yyyy轉換爲DateTime MM/dd/yyyy

string mydate = "dd/MM/yyyy"; 
DateTime myConvertedDate = DateTime.ParseExact(mydate ,"MM/dd/yyyy" , CultureInfo.InverientCulture); 

我在哪裏做錯了?

+3

你想將它轉換成'DateTime'(它沒有'格式'),或者你想輸出一個字符串'DateTime'格式? –

+0

@Gailad實際上是在13/02/1990 – parish

+3

如果它來自日曆控件,爲什麼你總是用* strings *擺弄?您應該在整個代碼中使用'DateTime'類型。正如Stephen指出的,不要[*有格式](http://referencesource.microsoft.com/#mscorlib/system/datetime.cs,130) –

回答

1

你需要做的

DateTime myConvertedDate = DateTime.ParseExact(mydate ,"dd/MM/yyyy" , CultureInfo.InverientCulture); 

日期時間本身不存儲數據的任何格式,所以您提供的格式解析準確是輸入字符串的格式。日期的格式只有在將其轉換回字符串時纔會顯示,以某種方式輸出。你可以輸出格式爲「MM/DD/YYYY」的日期要使用

myConvertedDate.ToString("MM/dd/yyyy"); 

將日期轉換到你想要的格式的字符串。

+0

雖然Damien_The_Unbeliever指出這是有效的,但如果日期來自日曆控件,它將已經是DateTime類型,所以你不需要使用ParseExact,只需要ToString(「MM/dd/yyyy」)。 – sr28

+0

我用它,但它仍然顯示相同的日期'mydate = 19/07/2002'仍顯示'19/07/2002' – parish

+0

@parish您是否myDate = myConvertedDate.ToString(「MM/dd/yyyy」);然後看看myDate的價值? –

0

您只需要以正確的格式聲明字符串即可。

DateTime date = DateTime.Now; 
    string a = date.ToString("MM/dd/yyyy"); 
0

分析字符串爲DateTime與串(即「DD/MM/YYYY」)的原始格式 下面的測試將通過:

 

    string mydate = "13/05/2016"; 
    DateTime myConvertedDate = DateTime.ParseExact(mydate, "dd/MM/yyyy", CultureInfo.InvariantCulture); 

爲了解析日期爲另一種格式只需使用: myConvertedDate.ToString("MM/dd/yyyy")

+0

OP在什麼時候要求進行單元測試? – sr28

+0

@ sr28什麼是OP? 使用測試只是爲了表明這一點。 –

+0

OP是問這個問題的人。如果你打算給出這樣的例子,你需要解釋你爲什麼這樣做以及OP如何將它應用到他們的代碼中。您從來沒有說過,這純粹是一個如何使用ParseExact的例子。這可能會導致OP認爲他們只能複製你的代碼(壞主意,但確實發生了),並且它可以爲他們工作。 – sr28

0

只要試試這個,

yourDateTime.Value.toString("MM/dd/yyyy");