簡體   English   中英

DateTime.ParseExact函數未按預期工作?

[英]DateTime.ParseExact function is not working as expected?

我想解析以下日期時間字符串"2016-05-31T16:03:39.5173279Z"並且接收結果不是我所期望的,我希望那個小時是16而不是18。

這是一個代碼:

string _UtcFormat= "yyyy-MM-ddTHH:mm:ss.fffffffZ";
DateTime.ParseExact("2016-05-31T16:03:39.5173279Z", _UtcFormat, new System.Globalization.CultureInfo("de-DE"))

任何意見

在此輸入圖像描述

你可能沒注意到的一點是

Kind: Local

默認情況下, ParseExact將解析日期時間並將其轉換為您當地的時區。

如果你想忽略它,使用允許你指定DateTimeStyles重載 - 我相信你想要的設置是DateTimeStyles.AdjustToUniversal

您需要添加DateTimeStyles.AdjustToUniversal作為DateTime.ParseExact()的最后一個參數:

DateTime dt = DateTime.ParseExact("2016-05-31T16:03:39.5173279Z", _UtcFormat, new System.Globalization.CultureInfo("de-DE"), DateTimeStyles.AdjustToUniversal);

引用Z ,如:

string _UtcFormat = "yyyy-MM-ddTHH:mm:ss.fffffff'Z'";

2016年5月31日16:03 UTC,德國時間是18:03(他們的夏季是UTC + 2)。

在日期和時間格式字符串中,符號Z具有特殊含義。 如果您只想將其視為沒有功能的字符,請在格式字符串中將其引用為'Z'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM