我正在使用來自多個來源的 RSS 提要,並按日期對提要進行排序。但是,我收到的日期在不同的時區。
這是我得到的一些日期字符串的格式:
2021 年 12 月 8 日星期三 01:40:31 -0500 2021 年 12 月 8 日星期三 11:11:19 -0600
“-500”表示時區是 UTC-5。我需要使用“-0500”將此字符串轉換為日期,並且日期只需要在 UTC 中。
基本上從“2021 年 12 月 8 日星期三 01:40:31 -0500”到“12/08/2021 06:40:31”
我已經設法將字符串拆分為按日期排序,但由於時差,它並沒有真正的幫助。
是否有編碼可用於將字符串按原樣轉換為日期和僅 UTC 時間?或者只有我可以開始的地方嗎?
先感謝您。
使用DateTime.ParseExact,您可以指定要轉換的格式,並且可以包含“zzz”作為時區偏移量。您還可以指定您想要以 UTC 格式顯示的結果:
Dim s = "Wed 08 Dec 2021 01:40:31 -0500"
Dim d = DateTime.ParseExact(s, "ddd dd MMM yyyy HH:mm:ss zzz", Nothing, Globalization.DateTimeStyles.AdjustToUniversal)
Console.WriteLine(d.ToString("yyyy-MM-dd HH:mm:ss"))
Console.WriteLine(d.Kind.ToString())
輸出:
2021-12-08 06:40:31
UTC
當然,根據需要格式化結果。
或者,如果需要,您可以使用 DateTimeOffset 結構保留偏移量並將其調整為 UTC 以表示為字符串:
Dim s = "Wed 08 Dec 2021 01:40:31 -0500"
Dim d = DateTimeOffset.ParseExact(s, "ddd dd MMM yyyy HH:mm:ss zzz", Nothing)
Console.WriteLine(d.ToUniversalTime.ToString("yyyy-MM-dd HH:mm:ss"))
輸出:
2021-12-08 06:40:31
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句