issue with DateTime.ToOADate()
本文关键字:ToOADate DateTime with issue | 更新日期: 2023-09-27 18:32:17
有些
东西我无法理解DateTime.ToOaDate()。
这是我所拥有的
var plainDate = "01/07/2011";
var dateTime1 = DateTime.Parse(plainDate, new CultureInfo("en-GB"));
var value = dateTime1.ToOADate();
var dateTime2 = DateTime.Parse(DateTime.FromOADate(value).ToString(), new CultureInfo("en-GB"));
dateTime1 和 dateTime2 应该是相同的,对吧? 我只将普通日期转换为刻度,然后将其恢复为具有相同文化的日期时间,但实际上当我运行它时,dateTime2 的值为 (7-Jan-2011) 而不是 (1-Jul-2011)
我认为
这是因为您对 ToString 的调用没有指定区域性信息。
也试试ToString(new CultureInfo("en-GB"))
。
当您执行DateTime.Parse
时,您将指定您希望传入日期采用的格式。
执行ToString()
时,您指定应使用当前区域性来设置日期格式。
在这里,我猜您的Thread.CurrentThread.CurrentCulture.DateTimeFormat
正在返回美国格式。因此,DateTime.FromOADate(value).ToString()
返回 07/01/2011
,然后使用 en-GB 解析它时,它将返回 1 月 7 日。