Google Code Prettify

[JSON]日期的處理

在使用帳號密碼取回令牌 (Token) 後,發現它是以 GMT 的時間表示的




GMT 是格林威治時間,通常我們在使用的是本地時間,所以會有時差存在,如果直接使用在時間的比對或使用會有問題,需要作些的轉換處理才行。

DateTime d = Convert.ToDateTime(t.expires);
Console.WriteLine(string.Format("格林威治時間 {0:yyyy/MM/dd HH:mm:ss}", d));
Console.WriteLine(string.Format("本地時間 {0:yyyy/MM/dd HH:mm:ss}", d.ToLocalTime()));


執行結果:

格林威治時間 2018/08/01 15:15:45
本地時間 2018/08/01 23:15:45


以上的範例讓我們確定 本地時間才是我們現在的時間,而與格林威治時間正好差了 8 小時。




如果要用在時間的比較時,可以考慮用以下的方式

DateTime dGMT = Convert.ToDateTime(t.expires);
if (dGMT.ToLocalTime().CompareTo(DateTime.Now) == 0) 
    Console.WriteLine("時間相同");
else 
    Console.WriteLine("時間不相同");