C#DateTime.tryparseezact将时区设置错误

C#DateTime.tryparseezact将时区设置错误,c#,datetime,timezone,tryparse,C#,Datetime,Timezone,Tryparse,我正在尝试解析包含一些时区信息的日期时间字符串(美国东部时间2014年5月1日晚上9:45): DateTime对象获得当地时间2014年1月5日下午12:45(我在美国东部时间) 如果我使用(2014年5月1日太平洋标准时间时区晚上9:45): DateTime对象获取当地时间2014年1月5日上午9:45 我不明白出了什么问题,为什么我不能在给出时区信息后更正当地时间 我正在尝试使用DateTime而不是DateTimeOffset,是否仍有正确的解析方法?string fixedRecor

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

DateTime对象获得当地时间2014年1月5日下午12:45(我在美国东部时间)

如果我使用(2014年5月1日太平洋标准时间时区晚上9:45):

DateTime对象获取当地时间2014年1月5日上午9:45

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


我正在尝试使用DateTime而不是DateTimeOffset,是否仍有正确的解析方法?

string fixedRecordedDateTime=“Thu May 01 21:45:00+0500 2014”


现在是UTC+0500的21:45。这将是UTC的16:45,或EDT的12:45(UTC-0400)。我想您的+和-在偏移量中被颠倒了。

字符串fixedRecordedDateTime=“Thu May 01 21:45:00+0500 2014”


现在是UTC+0500的21:45。这将是UTC的16:45,或EDT的12:45(UTC-0400)。我想您的+和-在偏移量中被颠倒了。

字符串fixedRecordedDateTime=“Thu May 01 21:45:00+0500 2014”


现在是UTC+0500的21:45。这将是UTC的16:45,或EDT的12:45(UTC-0400)。我想您的+和-在偏移量中被颠倒了。

字符串fixedRecordedDateTime=“Thu May 01 21:45:00+0500 2014”


现在是UTC+0500的21:45。这将是UTC的16:45,或EDT的12:45(UTC-0400)。我想你的+和-在偏移量中颠倒了。

EST是GMT-5。太平洋标准时间是格林尼治标准时间8点。GMT+5是印度,GMT+8是中国。请注意。@antonttykhyy GMT+5.30是印度,而不是GMT+5EST是GMT-5。太平洋标准时间是格林尼治标准时间8点。GMT+5是印度,GMT+8是中国。请注意。@antonttykhyy GMT+5.30是印度,而不是GMT+5EST是GMT-5。太平洋标准时间是格林尼治标准时间8点。GMT+5是印度,GMT+8是中国。请注意。@antonttykhyy GMT+5.30是印度,而不是GMT+5EST是GMT-5。太平洋标准时间是格林尼治标准时间8点。GMT+5是印度,GMT+8是中国。作为旁注,请注意。@antonttykhyy GMT+5.30是印度,而不是GMT+5谢谢,我想这篇文章也需要更正,我用页面上的代码将EST PST等转换成了一个数字。谢谢,我想这篇文章也需要更正,我用页面上的代码将EST PST等转换成了一个数字。谢谢,我猜这篇文章也需要更正,我使用页面上的代码将EST PST等转换为一个数字。谢谢,我猜这篇文章也需要更正,我使用页面上的代码将EST PST等转换为一个数字。
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);
string fixedRecordedDateTime = "Thu May 01 21:45:00 +0800 2014";