2012-01-16 178 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