將字符串中的時間和日期轉換為日期 VB.net

漢堡喬丹

我正在使用來自多個來源的 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章