程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 『片段』C# DateTime 時間相減 和 時區的關系,

『片段』C# DateTime 時間相減 和 時區的關系,

編輯:C#入門知識

『片段』C# DateTime 時間相減 和 時區的關系,


 本文只是基礎代碼片段,直接先寫 結論: C# DateTime 時間相減 —— 和 時區無關,只和時間值有關。

 

運行結果:

 

測試代碼:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace Temp_20160623_時間時區
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             DateTime timeNow = DateTime.Now;         //當前本地時間 (北京時間+8)
13             DateTime timeUtcNow = DateTime.UtcNow;   //世界協調時間 (格林威治+0)
14             DateTime timeUtcNow2 = new DateTime(
15                 timeUtcNow.Year, timeUtcNow.Month, timeUtcNow.Day,
16                 timeUtcNow.Hour, timeUtcNow.Minute, timeUtcNow.Second, timeUtcNow.Millisecond,
17                 DateTimeKind.Local);                 //世界協調時間 (北京時間+0) —— 和 UTC時間 值一樣 的 北京時間
18 
19 
20             Console.WriteLine("北京時間+8 :" + timeNow);
21             Console.WriteLine("格林威治+0 :" + timeUtcNow);
22             Console.WriteLine("北京時間+8 :" + timeUtcNow2);
23 
24 
25 
26             //timeNow 和 timeUtcNow 相差 8個時區
27             //問:       這兩個時間相減 等於多少?
28 
29 
30             TimeSpan timeSpan = timeNow - timeUtcNow;
31             Console.WriteLine("({0} +8) - ({1} +0) = {2}", timeNow, timeUtcNow, timeSpan.TotalHours.ToString("F6"));
32 
33             TimeSpan timeSpan2 = timeNow - timeUtcNow2;
34             Console.WriteLine("({0} +8) - ({1} +8) = {2}", timeNow, timeUtcNow2, timeSpan2.TotalHours.ToString("F6"));
35 
36 
37         }
38     }
39 }

 


於是 就有了 這樣的問題 (如下問題 僅作思考):
> 最開始, 項目是 國內項目 —— 從不考慮時區, 統一用的 +8時間, 存入數據庫的 也是 +8時間.
> 之後, 項目開始 跨國家 —— 國外用戶 也能使用.
問:
> 如何才能 對現有改動最小 的前提下 —— 完善項目 對國際時間的支持呢 ?

 

(本文 不是重量級 技術 —— 底層小細節而已,耽誤大家時間的話,在此表示歉意。)

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved