c# DateTime.TryParseExact得到错误的时区

本文关键字:错误 时区 DateTime TryParseExact | 更新日期: 2023-09-27 18:02:32

我正在尝试解析包含一些时区信息的日期时间字符串(东部时区2014年5月1日9:45pm):

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当地时间(我在东部时间)

如果我使用(May 1st 2014 9:45pm in PST时区):

string fixedRecordedDateTime = "Thu May 01 21:45:00 +0800 2014";

DateTime对象得到5/1/2014 09:45 AM本地时间

我不明白出了什么问题,为什么我不能在给出时区信息后纠正当地时间

我试图使用DateTime而不是DateTimeOffset,无论如何要正确解析这个?

c# DateTime.TryParseExact得到错误的时区

string fixedRecordedDateTime = "Thu May 01 21:45:00 +0500 2014";

现在是UTC+0500的21:45。这将是UTC的16:45,或EDT (UTC-0400)的12:45。我想你把+和-弄反了