如何在 C# 中将以下格式的字符串转换为 DateTime:
- 格林威治标准时间 5 月 17 日下午 4:52+01:00
- 美国东部时间 5 月 17 日下午 3:57
.NET 是否支持转换这些字符串?
如何在 C# 中将以下格式的字符串转换为 DateTime:
.NET 是否支持转换这些字符串?
不幸的是DateTime.Parse
不会理解那些时区。三个字母的缩写不是指定时区的好方法,因为有很多不明确的缩写。例如,“CST”可以表示“中部标准时间”或“中国标准时间”。
除非您知道时区来自哪个国家(我猜您不知道),否则您可能不走运。
DateTime.Parse()
不会识别其中任何一种格式。但是,如果您使用ParseExact()代替,您可以指定自定义格式。有关如何指定 DateTime 格式字符串的信息在这里。
例如,第一种格式的格式字符串是"MMMM dd, h:mmtt 'GMT'zzz"
.
无法使用 DateTime 格式字符串捕获非数字时区指定,因此第二种格式有点棘手。我可能会提前检查这种情况。当它这样做时,您可能只需将最后 3 个字母从末尾剪掉,然后使用查找表将它们转换为 GMT 偏移量,以应用于您从解析字符串的第一部分获得的 DateTime。
Convert.ToDateTime(yourDateTimeString);
尝试 DateTime Parse 方法: