Как прочитать время на мобильном устройстве Windows, используя C # - PullRequest
1 голос
/ 29 июля 2011

Какие API предоставлены в Compact Framework для считывания времени (НЕ в UTC !!) на устройстве под управлением Windows Mobile?

Мне удалось получить время устройства в 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);

Но я хочу время согласно часовому поясу устройства.Спасибо

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Вы можете использовать DateTime.UtcNow, чтобы получить время UTC.Получите текущее смещение utc TimeZone

GetUtcOffset для получения TimeSpan.

http://msdn.microsoft.com/en-us/library/system.timezone.getutcoffset.aspx

Затем вы можете получить LocalTime = DateTime.UtcNow + TimeZone.GetUtcOffset

1 голос
/ 29 июля 2011

Почему вы просто не используете встроенное, поддерживаемое DateTime.Now свойство?

РЕДАКТИРОВАТЬ

Compact Framework кэширует информацию о часовом поясе вload , поэтому любой вызов для изменения часового пояса после загрузки приложения не будет отражен в вызове DateTime.Now.

Сейчас я предполагаю, что вы P / Invoking GetSystemTime,вместо этого вы должны быть P / Invoking GetLocalTime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...