C# 字符串日期到日期时间格式
我有一个值为13/12/17,09:37:20+32的字符串,我无法将其转换为日期时间格式。“字符串未被识别为有效的日期时间”时总是出现错误。这是我的代码:C# 字符串日期到日期时间格式,c#,datetime,C#,Datetime,我有一个值为13/12/17,09:37:20+32的字符串,我无法将其转换为日期时间格式。“字符串未被识别为有效的日期时间”时总是出现错误。这是我的代码: DateTime crtdDate = DateTime.ParseExact(l.CreateDate, "yy/MM/dd,hh:mm:ss tt", CultureInfo.InvariantCulture); 请有人帮帮我,谢谢 tt表示am或pm +32不会被tt解析。如果您试图解析百分之一百秒,请尝试ff var crtd
DateTime crtdDate = DateTime.ParseExact(l.CreateDate, "yy/MM/dd,hh:mm:ss tt", CultureInfo.InvariantCulture);
请有人帮帮我,谢谢
tt
表示am
或pm
+32不会被tt解析。如果您试图解析百分之一百秒,请尝试ff
var crtdDate = DateTime.ParseExact(l.CreateDate, "yy/MM/dd,hh:mm:ss+ff", CultureInfo.InvariantCulture);
您的字符串必须与格式完全匹配:
l.CreateDate = "06/15/2008";
[http://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx][1]
"d" -> 6/15/2009 1:45:30 PM -> 6/15/2009 (en-US)
6/15/2009 1:45:30 PM -> 15/06/2009 (fr-FR)
6/15/2009 1:45:30 PM -> 2009/06/15 (ja-JP)
DateTime.ParseExact(l.CreateDate, "d", CultureInfo.InvariantCulture);
如果没有+32,则将解析:
DateTime.ParseExact("13/12/17,09:37:20", "yy/MM/dd,hh:mm:ss", CultureInfo.InvariantCulture);
使用有效的时区说明符,以下操作将起作用:
DateTime crtdDate = DateTime.ParseExact("13/12/17,09:37:20+00:00", "yy/MM/dd,hh:mm:ssK",
CultureInfo.InvariantCulture);
+32
应该是什么?这当然不是一个有效的时区偏移量。您的日期格式无效。请尝试将其设置为2013/12/17,09:37:20+32,而不是13/12/17,09:37:20+32,因为13被解释为13个月。代码to DateTime crtdDate=Convert.ToDateTime(d)+32是您的timezome值从未见过它,但在格式规范中我能找到的最接近的东西是zz
,它指定了与UTC的小时偏移量。为什么有人需要抵消超过12个小时?我也是,但它会自动将日期缩短到指定日期前1天。c#对其他部分做了一些事情(这只是我的猜测)