如何解析.net 6(澳大利亚/悉尼)中特定时区的DateTime



我有一个Datetime字符串,我想把它解析为一个特定的时区,考虑到夏令时

例如-我有一个字符串:(使用f#但使用相同的库)let dateString = "20/12/2022 11:26:34">

时区是澳大利亚悉尼-我认为这个时区有时是东部标准时间,有时是东部夏令时。

是否有任何方法可以将日期解析为悉尼时间,并自动转换为考虑夏令时的正确日期时间?

TimeZoneInfoDateTimeOffset可以同时使用。

open System
let sydneyTimezone: TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("AET")
(* The date with unspecified timezone info *)
let unspecifiedDate: DateTime = DateTime.Parse("20/12/2022 11:26:34")
(* Uses the given date to determine the correct offset (10 or 11 hours depending on daylight) *)
let offset: TimeSpan = sydneyTimezone.GetUtcOffset(unspecifiedDate)
(* The date with the correct offset *)
let dateWithOffset: DateTimeOffset = DateTimeOffset(unspecifiedDate, offset)
(* If you want the corresponding UTC *)
let dateUtc: DateTime = dateWithOffset.UtcDateTime

编辑:为了清晰,增加了类型。

最新更新