C# 日期字符串和UTC時間的轉換


需求:為了解決誇時區的時間問題,將時間固定設置為了 (GMT-05:00) Eastern Time (US and Canada)
但是在瀏覽器端還需要進行時間的對比,但是js對時間的操作太弱了,沒有考慮使用第三方的js庫,所以用了以下方案,
返回兩個時間,一個是EST時區的時間格式用來顯示,一個是帶時區的UTC時間,因為發現帶時區的時間字符串使用new Date()會直接轉換為本地時間。

            var esternTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");

                    detail.StartTime = TimeZoneInfo.ConvertTimeFromUtc(offsetStartTime.UtcDateTime, esternTimeZone);
                    detail.StartTimeUTC = TimeZoneInfo.ConvertTimeFromUtc(offsetStartTime.UtcDateTime, TimeZoneInfo.Utc);
                    detail.EndTime = TimeZoneInfo.ConvertTimeFromUtc(offsetEndTime.UtcDateTime, esternTimeZone);
                    detail.EndTimeUTC = TimeZoneInfo.ConvertTimeFromUtc(offsetEndTime.UtcDateTime, TimeZoneInfo.Utc);

可以用以下代碼獲取 TimeZoneID

IList<TimeZoneInfo> lst = TimeZoneInfo.GetSystemTimeZones();

客戶端就使用StartTimeUTC來進行時間判斷

var StartTimeUTC = "2021-05-31T09:00:00+00:00";
var nowDate = new Date(); //Fri May 14 2021 18:19:57 GMT+0800 (China Standard Time)
var startTime = new Date(StartTimeUTC); //Mon May 31 2021 17:00:00 GMT+0800 (China Standard Time)
if (startTime < nowDate) {
  // do something
}

參考:how to convert string to DateTime as UTC as simple as that


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM