簡體   English   中英

將此日期格式“2019-11-07T13:30:00+05:30”轉換為 UTC 日期的最佳方法是什么?

[英]What is the best way to convert this date format “2019-11-07T13:30:00+05:30” to utc date?

我需要一種方法來將此日期:2019-11-07T13:30:00+05:30 轉換為 UTC。

同時還考慮到它有 +05:30

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

string dateEnd = "2019-11-07T13:30:00+05:30";
DateTime converted = Convert.ToDateTime(dateEnd);

它將它轉換為這個日期:

2019 年 8 月 29 日上午 9:00:00

dateEnd="2019-11-07T13:30:00+05:30";
    matchObject.DateEnd = Convert.ToDateTime(dateEnd).ToUniversalTime();    

好的,作為前面的警告:處理時區是可行的 我盡量避免它。 幸運的是,在 .NET 中,我們可以在大多數情況下。

DateTime 內部存儲自Unix紀元 (1/1/1970) 開始以來的刻度數。 您看到的任何字符串和任何其他屬性? 這些只是對那個值的一種解釋。

ToString() 和 Parse() 函數非常擅長它們的工作。 如果沒有給定另一種文化,他們將檢索 windows(或他們的線程)的當前文化集。 對於 DateTimes,它還會將您的本地時區納入顯示中(根據需要)。

現在調試器也只是一個程序。 它當然會顯示從您的 Windows current Timezone查看的平均 DateTime 。 或者更確切地說,運行該程序的用戶使用的時區 - 這可以是一個臨時/僅編譯的用戶,具有各種奇怪的東西。

使用 Input 字符串,清楚地注明了 Origin 的時區。 我不記得看過那個語法,但它可能就像為 WebRequest 提供特定端口一樣。 不涉及猜測或暗示值。 它被 Parse 接受,所以無論如何:)

如果您從與 UTC 相關的 function 獲得 DateFrom,它將將Kind 屬性設置為 UTC 這應該解決整個“在本地時區顯示”的問題。

暫無
暫無

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

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