我正在使用來自多個來源的 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 時間?或者只有我可以開始的地方嗎?
先感謝您。
uj5u.com熱心網友回復:
使用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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/378916.html
