将字符串中的时间和日期转换为日期 VB.net
Convert Time and Date in string to date 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
我正在使用来自多个来源的 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