2012-01-16 185 views
1

我用我的「劃時代」的獲取當前系統日期時間

Datetime myepoch=new DateTime(2005,11,11,7,0,0); 

但我想它與所有的exe我打算在(亞洲機器和機器在歐洲或運行系統兼容例如,美國就是用Datetime.Now適當地改變myepoche)。我應該看什麼文化課?

+0

使用DateTime.UtcNow和myUtcDateTime.ToLocalTime()來獲取本地時間 – Reniuz 2012-01-16 11:33:32

回答

5

你會使用一個不變的文化,你的時代來提供最好的服務 - 例如,UTC:

Datetime myEpoch = new DateTime(2005, 11, 11, 7, 0, 0, DateTimeKind.Utc); 

使用不變的文化,使有關的時間和日期更簡單的推理。

如果你打算在日期和時間上做很多工作,我建議你看看the noda time blog以瞭解他們學過的一些課程,以及可能使用的一些庫,已創建。

+0

+1 - 我同意。內部時間應始終爲UTC/GMT和文化不變,只從用戶輸入接受日期字符串或顯示日期字符串供用戶使用時引用本地機器文化。如果例如是否考慮夏令時,DateTime.Now甚至會在具有相同文化的計算機上導致問題。 – ChrisBD 2012-01-16 11:35:16

2

與DateTime對象工作,你可以得到本地和世界時

var tmpTime = DateTime.Now; 
var localTime = tmpTime.ToLocalTime(); 
var universalTime = tmpTime.ToUniversalTime(); 
+0

ups,到像@ rich.okelly +1這樣的相同解決方案 – 2012-01-16 11:39:55