2017-07-27 64 views
1

我已將System.DateTime.Now存儲在名爲StartDate(變量是DateTime類型的變量)的變量中。DateTime.ParseExact不適用於「yyyy-MM-dd HH:mm:ss」

我將其轉換爲字符串,如下:

string temp = StartDate.Value.ToString("yyyy-MM-dd HH:mm:ss") 

現在溫度具有值 「YYYY-MM-DD HH:MM:SS」。

現在我想再次串溫度轉換爲日期時間所以,我下面做:

DateTime.ParseExact(temp,"yyyy-MM-dd HH:mm:ss",null) 

但這不起作用。

它始終以與System.DatTime.Now相同的格式返回日期。它應該以「yyyy-MM-dd HH:mm:ss」格式返回值。

+0

假設格式應該是'「yyyy-MM-dd HH:mm:ss」',[我不能重現此問題。](http://rextester.com/VYU83873) –

+3

什麼是「不」工作「是什麼意思?不會編譯?出現FormatException?四小時結束?請澄清。 – dlatikay

+0

盲猜 - 嘗試'DateTime.ParseExact(temp,「yyyy-MM-dd HH:mm:ss」,CultureInfo.InvariantCulture)'?你有一些奇怪的當前文化嗎? – vlad2135

回答

3

DateTime類型的值不是具有的特定格式。該日期和時間存儲爲一對整數值(而不是每個組件一個,但更緊湊)。

當你解析一個字符串時,該字符串中表示的日期被存儲爲整數。

只有當你做一個.ToString()(可能有一些格式),你會得到一個字符串表示在特定的格式,日期

當您將鼠標懸停在調試器中的DateTime值上時,您會看到使用某種特定當前區域性的普通.ToString()的結果。

ParseParseExact之間的區別是,解析嘗試多種格式(和像「2017年2月3日」的字符串可能失敗 - 2月3日或3月2日?),而與ParseExact您提供一個或多個自己的格式。在這兩種情況下,您最終的值都是相同的DateTime類型。

相關問題