在服务器的其他TimeZone中创建一个DateTimeOffset设置为Midnight

Chr*_*ris 3 .net datetimeoffset

我有一台服务器设置为EST,我想知道我需要做什么来创建一个DateTimeOffset设置为当天午夜但在不同的时区?比如PST?

Jon*_*eet 6

  • 获取相关内容TimeZoneInfo.
  • 构造一个DateTime包含当地时间(即午夜)的
  • 调用TimeZoneInfo.GetUtcOffset以查找UTC的偏移量
  • DateTimeOffset使用本地时间和偏移量构造a

(如果Noda Time准备就绪,我建议创建一个ZonedDateTime使用它,但不幸的是我们甚至还没有为v1准备好了......虽然实际上你需要的位数可能足够稳定:)

值得注意的是,"当天的午夜"并不总是存在于所有时区.如果您可能需要处理在午夜进行夏令时转换的时区,您可能需要查看TimeZoneInfo.IsAmbiguousTimeTimeZoneInfo.IsInvalidTime.