如果我的字符串格式为yyyyMMddHHmmssfff
,例如20110815174346225
。如何从该String创建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
答案 0 :(得分:16)
var sDate = "20110815174346225";
var oDate = DateTime.ParseExact(sDate, "yyyyMMddHHmmssfff", CultureInfo.CurrentCulture);
答案 1 :(得分:4)
你必须使用
DateTime time = DateTime.ParseExact(String,String, IFormatProvider);
第一个参数字符串将是您的日期。 第二个参数字符串将是您的格式 第三个参数是您的文化信息(即IFormatProvider
所以你会有
DateTime TimeStamp = DateTime.ParseExact(Data[1],"yyyyMMddHHmmssfff",CultureInfo.InvariantCulture");
文化信息是“CultureInfo对象,表示用于解释s的文化。其DateTimeFormat属性返回的DateTimeFormatInfo对象定义s中的符号和格式。”来自MSDN。
这是更多信息的链接。 http://msdn.microsoft.com/en-us/library/kc8s65zs.aspx
答案 2 :(得分:1)
使用DateTime.ParseExact
:
DateTime dateTime = DateTime.ParseExact("[Your Date Here]",
"yyyyMMddHHmmssfff",
CultureInfo.InvariantCulture);
这是MSDN Docs。
答案 3 :(得分:0)
您应该使用静态方法DateTime.ParseExact
。
答案 4 :(得分:0)
我的日期格式为20151221T031901
将此转换为日期时间,我能够使用此格式
DateTime.ParseExact("20151221T031901","yyyyMMddTHHmmss" , System.Globalization.CultureInfo.CurrentCulture)