2012-10-04 51 views
0

我需要将Windows Mobile 6.5应用程序的时区转换为C#4.0中的UTC?是否有可能将时区更改为UTC?如何将时区设置为UTC?

+0

它是什么样的应用程序? WinForms,WPF或ASP.Net? – tomasmcguinness

+4

[你尝试过什么?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Default

+0

我认为类似的问题被问[这里] [1] [1]:http://stackoverflow.com/questions/6949779/net-converting-datetime-to-utc-given-the-timezone –

回答

1

你让我困惑。 Windows Mobile 6.5(又名Windows嵌入式手持设备)和C#4.0

Windows Mobile 6.5可以使用Compact Framework 3.5进行编程。没有C#4.0版本。 Windows Phone(> = 7.x)可以使用C#4.0框架进行编程。后者是用Visual Studio 2010完成的.Windows Mobile 6.5应该使用Visual Studio 2008(带有本地Mobile支持的最新VS)进行编程。好吧,当你处理时间时,你应该知道你的设备已知不同的“时间”。主“时间”,即系统时间始终是UTC。例如,文件时间总是与UTC一起保存。否则,切换时区将不得不保存到所有文件。 然后还有另一个'时间',当地时间。例如DateTime.Now()给出本地时间,时区和应用DST的时间。

有API函数来获取/设置设备的UTC时间或获取/设置本地时间和获取/设置文件时间。

玩SetTimeZone/GetTimeZone我发现一个与DST结合的大问题。请参阅http://www.hjgode.de/wp/2010/10/08/windows-mobile-setsystemtime-and-dst-einsteins-relativity-theory/。该帖子还具有P/Invokes访问Compact Framework在Windows Mobile上的时间功能。

通过将TimeZone转换为UTC,你的意思是什么?如果您需要知道当地时间的UTC,则必须读取TimeZone信息,并将时区偏移值添加到当地时间以删除UTC时间。

〜Josef

+0

谢谢。我在ASP.NET C#4.0上有一个服务器,它有美国时区,客户端上有C#3.5,它有MEA时区。我正在考虑将服务器和客户端时区更改为UTC。这样我就不会面临任何时差问题。任何其他方式将是可观的? – user960567

+0

我不会推荐使用不同于正确的时区。有一些后台服务可能会自动更改TZ。至少在移动设备上,小区无线电可以告诉操作系统的时区和时间,操作系统可能使用自动TZ更改。例如,当您旅行并穿越TZ边界时。如上所述,系统时间始终为UTC,本地时间可以使用计算机TZ和DST偏移量进行计算。如果您在客户端和主机之间交换时间戳数据,则始终使用UTC作为时间戳。 – josef

+0

好的,谢谢...... – user960567