2011-07-28 3 views
1

Windows Mobile 기반 장치에서 시간을 읽을 수 있도록 Compact Framework에서 제공되는 API는 무엇입니까 (UTC는 아님 !!) ? Windows 모바일 장치에서 시간을 읽는 방법 C#

는이 코드로 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 속성을 사용하고 있지 않습니까?

편집은

컴팩트 프레임 워크 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

관련 문제