簡體   English   中英

如何在C#中將“ 2015-11-06T18:34:07 + 05:30”字符串轉換為UTC DateTime對象

[英]How do I convert “2015-11-06T18:34:07+05:30” string to UTC DateTime object in C#

我需要將來自服務器的“ 2015-11-06T18:34:07 + 05:30”時間戳轉換為C#中的DateTime對象。然后,我需要將此DateTime轉換為UTC,以便在同步過程中進行比較。時間戳會有所不同。因此,如何創建與時區無關的功能,以從此時間戳字符串獲取UTC DateTime對象。

DateTime dt = DateTime.Parse("2015-11-06T18:34:07+05:30",
               CultureInfo.InvariantCulture,
               DateTimeStyles.AdjustToUniversal);

要么:

DateTime dt = DateTime.ParseExact("2015-11-06T18:34:07+05:30",
                                  "yyyy-MM-dd'T'HH:mm:ssK",
                                  CultureInfo.InvariantCulture,
                                  DateTimeStyles.AdjustToUniversal);

要么:

DateTimeOffset dto = DateTimeOffset.Parse("2015-11-06T18:34:07+05:30",
                                          CultureInfo.InvariantCulture);
DateTime dt = dto.UtcDateTime;

要么:

DateTimeOffset dto = DateTimeOffset.ParseExact("2015-11-06T18:34:07+05:30",
                                               "yyyy-MM-dd'T'HH:mm:sszzz",
                                               CultureInfo.InvariantCulture);
DateTime dt = dto.UtcDateTime;

當然,如果需要驗證,也可以使用TryParseTryParseExact變體。

就個人而言,我建議將其保留為DateTimeOffset而不要回到DateTime

還有Noda時間

OffsetDateTimePattern pattern = OffsetDateTimePattern.ExtendedIsoPattern;
OffsetDateTime odt = pattern.Parse("2015-11-06T18:34:07+05:30").Value;
DateTimeOffset dto = odt.ToDateTimeOffset();
DateTime dt = dto.UtcDateTime;

暫無
暫無

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

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