我收到此日期:9/20/2010 3:32:32 PM
我需要转换为datetime。
我试试:
DateTime DateFrom = DateTime.ParseExact("9/20/2010 3:32:32 PM", "dd/M/yyyy", CultureInfo.InvariantCulture);
但我收到错误:String was not recognized as a valid DateTime.
在我的电脑中,该地区为:Hebrew (Israel) dd/MM/yyyy for short date and hh:mm for short time
如何解决?
提前谢谢
答案 0 :(得分:11)
如果您收到“9/20/2010 3:32:32 PM”作为字符串,那么尝试解析它就好像它是“dd / MM / yyyy”格式一样显然是错误的 - 那就试试使用月 20.您也只是解析部分字符串 - 您需要修剪字符串或提供完整的格式。
试试这个:
DateTime dateFrom = DateTime.ParseExact("9/20/2010 3:32:32 PM",
"M/dd/yyyy h:mm:ss tt",
CultureInfo.InvariantCulture);
请注意,只有在您可以保证将始终作为格式时,才能使用此类严格解析。你从哪里得到这些数据?
答案 1 :(得分:4)
怎么可能有效。你正在转变成“dd / MM / yyyy”&把月份当作20个。在你的 问题dd / M / yyyy是错的。它会喜欢dd / MM / yyyy。
默认格式为MM/DD/yyyy.
简单的方法.......
DateTime DateFrom = DateTime.Parse("9/20/2010 3:32:32 PM");
如果您想提供特定格式,请使用
DateTime DateFrom = DateTime.ParseExact("20/09/2010 3:32:32 PM", "dd/MM/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
我希望它有效。
答案 2 :(得分:0)
看起来您的原始日期字符串采用美国格式(即m / dd / yyyy)。尝试用new CultureInfo("en-US")
答案 3 :(得分:0)
DateTime dateFrom = DateTime.ParseExact("9/20/2010 3:32:32 PM", "M/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
为我工作
答案 4 :(得分:0)
当我知道时间字符串由不变文化格式化时,我不会使用ParseExact()。
DateTime dateFrom = DateTime.Parse(dateString, CultureInfo.InvariantCulture);
更紧凑,更清晰。