如何使用DateTime.Parse()创建一个DateTime对象

15

如果我有一个字符串的格式为yyyyMMddHHmmssfff,例如20110815174346225,我该如何从该字符串创建一个DateTime对象。

我尝试了以下代码:

DateTime TimeStamp = DateTime.Parse(Data[1], "yyyyMMddHHmmssfff");

然而,我收到了以下错误:

Error   1   The best overloaded method match for 'System.DateTime.Parse(string, System.IFormatProvider)' has some invalid arguments C:\Documents and Settings\rkelly1\Desktop\sd\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 67  29  WindowsFormsApplication1


Error   2   Argument 2: cannot convert from 'string' to 'System.IFormatProvider'    C:\Documents and Settings\rkelly1\Desktop\sd\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 67  53  WindowsFormsApplication1
5个回答

24
var sDate = "20110815174346225";
var oDate = DateTime.ParseExact(sDate, "yyyyMMddHHmmssfff", CultureInfo.CurrentCulture);

谢谢。我不理解IFormatProvider,但是我从MSDN网站上找到了它。 - Richard
谢谢。有人可能认为“CultureInfo.CurrentCulture”是此参数的默认值,因此知道可以在看到“IFormatProvider”时愉快地替换“CultureInfo.CurrentCulture”真的很有用。 - Greg Graham

5

您需要使用

DateTime time = DateTime.ParseExact(String,String, IFormatProvider);

第一个参数字符串是您的日期。 第二个参数字符串是您的格式。 第三个参数是您的区域信息(即IFormatProvider)。

因此,您将拥有

DateTime TimeStamp = DateTime.ParseExact(Data[1],"yyyyMMddHHmmssfff",CultureInfo.InvariantCulture);

文化信息是“表示用于解释 s 的文化的 CultureInfo 对象。其 DateTimeFormat 属性返回的 DateTimeFormatInfo 对象定义了 s 中的符号和格式。”来自 MSDN。
这里是更多信息的链接。 http://msdn.microsoft.com/en-us/library/kc8s65zs.aspx

2

使用 DateTime.ParseExact

DateTime dateTime = DateTime.ParseExact("[Your Date Here]",
                                        "yyyyMMddHHmmssfff",  
                                        CultureInfo.InvariantCulture);

这里是MSDN文档,涉及到IT技术。

0

我有一个日期格式为20151221T031901

为了将其转换为日期时间,我能够使用以下格式

DateTime.ParseExact("20151221T031901","yyyyMMddTHHmmss" , System.Globalization.CultureInfo.CurrentCulture)

0
你应该使用静态方法 DateTime.ParseExact

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接