在C#中将某些字符串转换为DateTime

时间:2012-05-17 19:59:15

标签: c# datetime datetime-format

如何在C#中将以下格式的字符串转换为DateTime:

  1. 5月17日下午4:52 GMT + 01:00
  2. 美国东部时间5月17日下午3:57
  3. .NET是否支持转换这些字符串?

4 个答案:

答案 0 :(得分:2)

不幸的是DateTime.Parse无法理解这些时区。三个字母的缩写不是指定时区的好方法,因为有许多含糊不清的缩写。例如,“CST”可以表示“中央标准时间”或“中国标准时间”。

除非你知道时区来自哪个国家(而且我猜你没有),否则你可能会运气不好。

答案 1 :(得分:1)

DateTime.Parse()无法识别这两种格式。但是,如果您使用ParseExact(),则可以指定自定义格式。有关如何指定DateTime格式字符串的信息是here

例如,第一种格式的格式字符串为"MMMM dd, h:mmtt 'GMT'zzz"

无法使用DateTime格式字符串捕获非数字时区指定,因此第二种格式有点棘手。我可能只是提前检查一下这种情况。如果是这样,您可能只需截断最后3个字母,并使用查找表将它们转换为GMT偏移量,以应用于解析字符串第一部分所得到的DateTime。

答案 2 :(得分:0)

Convert.ToDateTime(yourDateTimeString);

MSDN information

答案 3 :(得分:0)