使用nodatime,如何计算两个ZonedDateTime对象在其时区内的时间差,例如:我有两个日期分别位于“Europe/Stockholm”时区,在一个本地时间设置为“America/Los_Angeles”的服务器上进行计算。我希望获取这两个日期之间的毫秒数,同时要求考虑“Europe/Stockholm”时区的夏令时,并忽略服务器的本地时间。这是因为如果部署到另一台服务器,服务器的本地时间可能会改变,我不想更新代码。
试试这个:
ZonedDateTime t1 = LocalDateTime.FromDateTime(startTime).InUtc();
ZonedDateTime t2 = LocalDateTime.FromDateTime(endTime).InUtc();
Duration diff = t2.ToInstant() - t1.ToInstant();
DateTime
值开始的,这不是OP感兴趣的内容... - Jon Skeett1
和t2
,那么最后一行就是正确的,关于获取它们之间经过的时间,尽管我们仍然不确定这是否是OP所要求的。 - Matt Johnson-Pint
Zone
属性,该属性返回DateTimeZone
。 - Soner Gönül