我很想知道为什么这会给我一个错误
Convert.ToDateTime("7/16/2013 7:00:00 AM");但如果我用
Convert.ToDateTime(("16/7/2013 7:00:00 AM");如何将"7/16/2013 7:00 AM“转换为DateTime
发布于 2013-08-03 05:41:08
您可以使用特定的区域设置,也可以自己定义格式化,如下所示:
var dt = DateTime.ParseExact("7/16/2013 7:00:00 AM", "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);我用过
作为文化,我确实指定了不变的文化,基本上在所有系统上都是英语。无论系统或线程的当前区域性如何,它都是相同的。
您的问题确实产生于这样一个事实:您确实尝试处理来自不同地区的日期,并从您的系统中处理相同的线程区域设置,这似乎是英语。若要正确处理所输入的日期,您需要知道输入了哪个区域设置才能正确解析它。有些地区确实会切换,例如月份和日期,就像在您的示例中那样。有些使用不同的分隔器,甚至其他文化也有不同的用途。.=‘chars 1’>千个分隔符和小数点.
德语使用,作为小数点和。就像千千万万的分离器。约会看上去就像
"24.12.2013 14:25:59“
没有AM/PM,没有/但是有很多点。
发布于 2013-08-03 05:24:59
您必须了解文化,请参阅以下链接:Convert.ToDateTime法
CultureInfo culture = new CultureInfo("en-US");
Convert.ToDateTime("7/16/2013 7:00:00 AM", culture );发布于 2013-08-03 05:46:13
您可以简单地尝试使用DateTime.TryParse()
DateTime dt;
if(DateTime.TryParse("7/16/2013 7:00:00 AM", out dt))
Console.Write(dt);https://stackoverflow.com/questions/18029580
复制相似问题