格式中没有时间的ParseExact给出12:00 AM

本文关键字:AM 给出 ParseExact 没有时间 格式 | 更新日期: 2023-09-27 18:27:22

当我解析一个没有时间部分的日期时,我得到的日期时间是12:00 AM。我预计是上午00:00

 DateTime.ParseExact( "1/10/2014", "d/MM/yyyy", null, DateTimeStyles.None );

尽管我的操作系统的文化是nl-BE,但我的(specflow)线程的文化似乎是en-US
为什么我的约会时间是上午12:00?

对于谷歌用户:

  • 要调试日期时间的小时数,请检查timeofday属性。它总是在ISO中
  • 00:00==12:00 AM,但01:00==01:00 AM
  • AM PM真是令人困惑http://en.wikipedia.org/wiki/12-hour_clock

格式中没有时间的ParseExact给出12:00 AM

12:00 AM是午夜,因此是给定日期的第一秒,因此是正确的结果。没有必要减去12小时,这实际上会产生给定日期前一天的中午。午夜后的第一分钟是凌晨00:01。

要修改当前线程的区域性,只需编写:

Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-BE");

并且您的代码将以荷兰语(比利时)运行。