在C#中將帶時區的字符串轉成DateTime類型需要用到DateTimeFormatInfo,這個類包含特定於區域性的信息。
例如,將Sun, 28 Jun 2020 03:40:22 GMT轉成DateTime該怎么弄呢?
DateTimeFormatInfo dtFormat = new DateTimeFormatInfo(); dtFormat.FullDateTimePattern = "ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"; var result = Convert.ToDateTime("Sun, 28 Jun 2020 03:40:22 GMT", dtFormat);
FullDateTimePattern
屬性為長日期和長時間值獲取或設置自定義格式字符串。而“Sun, 28 Jun 2020 03:40:22 GMT”格式屬於RFC1123Pattern(該格式用於用於基於 Internet 工程任務組 (IETF) 征求意見文檔 (RFC) 1123 規范的時間值),這種格式是自定義格式字符串。
轉換出的結果是:2020-06-28 11:40:22 轉換時自動加了8個小時的時差
參考:
DateTimeFormatInfo 類