一尘不染

使用格式为PST / CEST / UTC / etc的时区解析DateTime

c#

我正在尝试解析类似于以下内容的国际日期时间字符串:

24-okt-08 21:09:06 CEST

到目前为止,我有类似的东西:

CultureInfo culture = CultureInfo.CreateSpecificCulture("nl-BE");
DateTime dt = DateTime.ParseExact("24-okt-08 21:09:06 CEST",
    "dd-MMM-yy HH:mm:ss ...", culture);

问题是格式字符串中的“ …”应使用什么?查看“ 自定义日期和时间格式字符串” MSDN页面似乎没有以PST / CEST / GMT / UTC格式列出用于解析时区的格式字符串。


阅读 454

收藏
2020-05-19

共1个答案

一尘不染

AFAIK无法识别时区缩写。但是,如果用时区偏移量代替缩写,就可以了。例如:

DateTime dt1 = DateTime.ParseExact("24-okt-08 21:09:06 CEST".Replace("CEST", "+2"), "dd-MMM-yy HH:mm:ss z", culture);
DateTime dt2 = DateTime.ParseExact("24-okt-08 21:09:06 CEST".Replace("CEST", "+02"), "dd-MMM-yy HH:mm:ss zz", culture);
DateTime dt3 = DateTime.ParseExact("24-okt-08 21:09:06 CEST".Replace("CEST", "+02:00"), "dd-MMM-yy HH:mm:ss zzz", culture);
2020-05-19