1. 程式人生 > >C# 中時區的查訊和轉換

C# 中時區的查訊和轉換

我們會需要把 local 時間轉換成某一時區的時間, 這裡用.Net 的內建方法來實現:

            ///UTC 時間
            DateTime dt = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now, TimeZoneInfo.Local);
            Console.WriteLine(dt.ToString());

            DateTime dt2 = DateTime.Now;
            Console.WriteLine(dt2.ToString());

            //美國加拿大時區
            var dt4 = TimeZoneInfo.ConvertTimeFromUtc(dt, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"));
            Console.WriteLine(dt4.ToString());


            //列舉所有支援的時區列表
            var list = TimeZoneInfo.GetSystemTimeZones();
            foreach (TimeZoneInfo tzi in list)
            {
                Console.WriteLine(tzi.Id);
            }

            DateTime eastern = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "Eastern Standard Time");
            dt.ToUniversalTime();
            var currentTimeZone = TimeZone.CurrentTimeZone;

            //簡單的轉換
            DateTime currentUSTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.Now.ToUniversalTime(), "Eastern Standard Time");
具體的時區列表和資訊說明可以參考微軟的文擋