我正在尝试解析包含一些时区信息的日期时间字符串(2014年5月1日美国东部时间下午9:45):
DateTime RecordedDateTime;
string fixedRecordedDateTime = "Thu May 01 21:45:00 +0500 2014";
string[] dateFormats = { "ddd MMM dd HH:mm:ss zzz yyyy" , "ddd MMM dd HH:mm:ss K yyyy" };
DateTime.TryParseExact(fixedRecordedDateTime, dateFormats, CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out RecordedDateTime);
DateTime对象得到5/1/2014 12:45 PM当地时间(我在EST)
如果我使用(2014年5月1日下午9点45分在PST时区):
string fixedRecordedDateTime = "Thu May 01 21:45:00 +0800 2014";
DateTime对象获取当地时间5/1/2014 09:45
我不明白出了什么问题,为什么我在提供时区信息后无法纠正当地时间。
我正在尝试使用DateTime而不是DateTimeOffset,无论如何都要正确解析?
答案 0 :(得分:2)
string fixedRecordedDateTime = "Thu May 01 21:45:00 +0500 2014";
UTC + 0500是21:45。这将是UTC的16:45,或EDT的12:45(UTC-0400)。我认为你在偏移中得到了你的+和 - 反转。