DateTime轉換帶時區的字串

2021-10-07 13:55:33 字數 715 閱讀 5798

在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個小時的時差

ps:後來發現直接使用convert.todatetime()也能將這種帶時差的格式的轉成北京時間

參考:datetimeformatinfo 類

DateTime的使用 轉換

datetime.tostring 是乙個好東西,也非常便於使用,基本上你指定什麼他就顯示什麼,呵呵,沒錯,是 基本上 ms有時候不太好用,比如下面這段 static void main string args 你能看出最終的輸出結果是什麼嗎?猜一猜,哪行會和你預想的不一樣?看結果 20070121...

關於DateTime的轉換

當函式需要乙個datetime型別的變數,但傳入的值drselect 某列名 tostring 輸出來後,顯示為20080501這個格式時,要注意這種格式不能轉化為datetime型別的變數,應該轉化成2008 05 01這種 形式就可以了。datetime dt new datetime stri...

draft 帶時區的時間

moment格式化時間預設格式為當地時區的時間。如果格式化的結果與當地時間有差值,一般原因是 要格式化的時間帶有時間標誌,如 utc gmt等。經過moment格式化後,會變成時間標誌所表示的時區的時間。此時,只需要改變時間偏移量即可。使用 utcoffset utcoffset 接收數字,時間偏移...