2011-07-28 49 views
1

Compact Framework提供的API在基于Windows Mobile的设备上读取时间(NOT in UTC !!) 是什么?如何使用c#读取Windows移动设备上的时间

我能够使用此代码来获得设备的时间在UTC:

DateTime dt = DateLib.Now;    
SystemTime sysTime = new SystemTime(); 
Windows.SystemTime.GetSystemTime(out sysTime); 
Windows.SystemTime.ConvertTimeStructure(ref sysTime, out dt); 
Windows.SystemTime.SetSystemTime(dt); 

但我想的时候按设备的时区。 谢谢

回答

1

为什么不简单地使用内置的支持DateTime.Now属性?

EDIT

紧凑的框架caches timezone information on load,所以任何呼叫一个应用程序加载后更改时区不会反映到DateTime.Now的呼叫。

现在我假设你是P/Invoking GetSystemTime,而应该是P/Invoking GetLocalTime

+0

那么,所发生的事情是这样的:假设设备是太平洋标准时间(PST)和我启动我的应用程序和登录。我得到正确的时间。现在我注销并更改时区以表示中央标准时间。我登录并希望时间(DateTime.Now)能够根据设备上的时钟和闹钟应用程序(即CST)的时间给出时间,但我得到的时间仍然在PST中。所以,我决定在登录到我的应用程序之前更新设备上的时间。所以,我首先读取设备时间,然后设置它。但我不知道正确的API。 – Neeraj

+0

DateLib.Now只是DateTime.Now的一个包装,它会剔除秒数。 – Neeraj

相关问题