2011-06-09 93 views
1

,我有以下格式的日期在文件(YYYY-MM-DD HH:MM:SS.millisecs):如何解析這個日期格式到一個DateTime對象?

1987-04-03 19:17:12.000 

當我使用日期時間來解析這個字符串,它只有日期部分並沒有得到時間的一部分。有人可以告訴我如何解析這個到DateTime對象嗎?

+2

請告訴我們你的代碼使用解析這個日期 - 因爲當我測試這個,它完美的作品。 (例如,你確定你沒有*輸出短日期格式的結果嗎?) – 2011-06-09 20:58:01

+0

@djacobson:我的歉意。我的印刷很混亂!你是對的。它工作正常。 – Legend 2011-06-09 21:00:32

回答

5

使用DateTime.ParseExact()。

var format = "yyyy-MM-dd hh:mm:ss.fff" 
var dt = DateTime.ParseExact(s, format); 

參見http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx。您還應該添加一個格式提供程序,就像CultureInfo.InvariantCulture一樣。

var dt = DateTime.ParseExact(s, format, CultureInfo.InvariantCulture); 
0

你正在尋找的格式字符串:

yyyy-MM-dd HH:mm:ss.fff 

所以

DateTime myDateTime = DateTime.ParseExact(sourceString, "yyyy-MM-dd HH:mm:ss.fff", 
    CultureInfo.InvarientCulture); 

MSDN for more information

+0

是的,我知道,但可以將格式字符串傳遞給Parse,就像我在更新中顯示的那樣。 – 2011-06-09 21:01:35

+0

好吧...所以我在迴應那裏有一條評論,但評論者刪除了他們的評論。 – 2011-06-09 21:02:03

1

我做了一個快速的控制檯應用程序和它的顯示日期和時間:

string dateTimeString = "1987-04-03 19:17:12.000"; 
Console.WriteLine(DateTime.Parse(dateTimeString)); 
Console.ReadLine(); 

輸出的結果是: 1987年4月3日下午七時17分12秒

您可能會錯誤地使用生成的分析值?

0

你如何解析它?你如何將DateTime轉換爲字符串?

DateTime date = DateTime.Parse ("1987-04-03 19:17:12.000"); 
Console.WriteLine (date); 
// yields: 4/3/1987 7:17:12 PM 
Console.WriteLine (date.Date); 
// yields: 4/3/1987 
0
IFormatProvider culture = new CultureInfo("en-US", true); 
DateTime.ParseExact(timeString, "dd/MM/yyyy HH:mm:ss.fff",culture); 
1

DateTime.Parse( 「1987年4月3日19:17:12.000」)返回1987年4月3日下午7時十七分12秒