2013-04-09 86 views

回答

10

解析成一個DateTime再次

DateTime myTime = DateTime.Parse(myString); 

,並返回到正確的串

myTime.ToString("yyyy-MM-dd HH:mm:ss"); 

或者只是讀入一個datetime和切出的中間人。

+0

我想使用的DateTime數值指明MyTime = DateTime.ParseExact(myString的, 「YYYY-MM-DD HH:MM:SS」,CultureInfo.CurrentCulture); – 2013-04-09 21:47:25

1

可以使用格式字符串"u"這樣得到普遍排序字符串格式(它看起來像SQL Server所使用的):

var dateTimeString = String.Format("{0:u}", yourDateTime); 
+0

包含一個「Z」,例如'2017-02-19 12:21:02Z' – RaoulRubin 2017-02-21 17:23:05

0

只需運行下面的代碼,

var newDateTime = oldDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss"); 

它只是將其轉換回SQL Format DATETIME

+0

這樣做會去掉'oldDateTime'的時​​間部分,並且只有在oldDateTIme已經是以 – Haedrian 2013-04-09 19:46:39

0

日期作爲字符串的麻煩是他們是模棱兩可的,格式可以變化bas編輯你在世界上的位置,甚至是本地機器設置。你可能會認爲日期字符串是yyyy-mm-dd,但是如果它實際上是yyyy-dd-mm呢?有些日期似乎有效,有些日期無效。

也就是說2013-02-10是2月10日還是10月2日?如果它只是一個字符串,你無法確切地知道是什麼意圖。

按照#Haedrian的建議,您最好的選擇是存儲在DateTime C#對象中,而不是字符串。這樣它永遠不會含糊不清,你可以訪問各種日期特定的功能。如果您必須存儲爲一個字符串,您可以按上述轉換回一個日期或使用

DateTime.TryParse(datestring, out dateVariable); 

,不會拋出異常的無效格式。取決於你是否想要例外!

此外,我會建議如果你必須使用字符串在字符串中使用3個字符的月份,這再次消除了模糊性,例如,

"dd-MMM-yy hh:mm tt" 
+0

開始的日期時間時才起作用* If它只是一個字符串,你無法確切地知道是什麼意圖。*如果只有一種方法** ParseExact ** ly你想要的格式 – 2013-04-09 19:49:09