2011-06-09 87 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秒