wince 5 ,时区设置相同(有夏令时),PDA 与PC通过ActiveSync同步后时间相差1小时的问题

时间:2022-07-15 17:55:09
系统为wince5
PDA 与PC 设置同一时区GMT-08:00 (有夏令时), 年月日都设置为相同2009-03-31, PC此刻时间为16:00, activesync同步后,PDA 时间与PC 时间相差一小时,PDA时间为2009-03-31 5:00 pm.

但是在同步后保存日期和时钟到注册表(2009-03-31 5:00pm),重新reset 后,启动起来初始化时用注册表里保存得时间设置时钟,PDA显示是2009-03-31 4:00pm. 

有没有人遇到过类似得问题,另外,关于控制面板设置系统时间得代码在哪里? 

9 个解决方案

#1


补充一点,根据夏令时自动调节时钟是选中的

#2


你的PC上有没有选中夏时制??

#3


选中了.

#4


各位大侠,没有遇到过这个问题吗!

#5


看表现是PDA获取了时间更新了注册表,但是没有实时显示。重启后能显示正确时间。
你应该查查为什么不更新实时显示的时间。

#6


在Windows Mobile里面,这个问题是通过将“常住城市”和“访问城市”的时区设成一样来解决的,但是在WinCE里面,控制面板的时间里面看到的时区应该只是“常住城市”的时区。通过在Platform.reg里面加以下键值,可以将默认的“访问城市”的时区设成“GMT+8 北京”
[HKEY_LOCAL_MACHINE\Software\Microsoft\Clock]
"AppInfo"=hex:01,00,00,00,31,00,00,00,D2,00,00,00,00,00,00,00,00,00,00,00,80,01,00,\
  00,D2,00,00,00,00,00,00,00,00,00,00,00
字串的意义不是很明白,如果需要改成其他时区,可以通过微软的Windows Mobile模拟器,修改“访问城市”时区后,再读取这个键值来得到。

#7


引用 5 楼 shuiyan 的回复:
看表现是PDA获取了时间更新了注册表,但是没有实时显示。重启后能显示正确时间。 
你应该查查为什么不更新实时显示的时间。


有道理啊,我查找了控制面板关于时间设定部分的代码和关于夏令时(DST)的代码.
搜索了相关的网页,把SetLocalTime 函数调用两次。
编译后usb经常联不上activesync。偶尔能连上时测试同步时间是相同的,于是我修改了相同的地方在另外一台计算机上编译,但是编译后的同步时间还是不对,差一小时,因为我修改的代码是
C:\WINCE500\PUBLIC\WCESHELLFE\OAK\TASKMAN\dst.cpp

C:\WINCE500\PUBLIC\WCESHELLFE\OAK\CTLPNL\CPLMAIN\datetime.cpp

涉及到了这两个目录,不知道为什么我的笔记本上编译的同步时间一致,但usb经常连不上activesync。
而在另一台计算机上编译的结果,同步时间还是有问题,但usb连接正常。

#8


引用 6 楼 wd1394 的回复:
在Windows Mobile里面,这个问题是通过将“常住城市”和“访问城市”的时区设成一样来解决的,但是在WinCE里面,控制面板的时间里面看到的时区应该只是“常住城市”的时区。通过在Platform.reg里面加以下键值,可以将默认的“访问城市”的时区设成“GMT+8 北京” 
[HKEY_LOCAL_MACHINE\Software\Microsoft\Clock] 
"AppInfo"=hex:01,00,00,00,31,00,00,00,D2,00,00,00,00,00,00,00,00,00,00,00,80,01,00,\ 
  00,D2,00,00,00,…

我们买的一个hp的win moble的pda是同步时间相同的,发现他的设置系统时间的控制面板里没有自动调节DST选项。

我刚查了下 ince的注册表,[HKEY_LOCAL_MACHINE\Software\Microsoft\Clock]下只有一个键值:
AutoDST

#9


微软论坛的回复如下:
If the date/time for transitions for daylight saving time are wrong, then 
you have not installed either a) the QFEs for Windows CE that have the 
updated DST information, or b) the desktop updates that have the latest DST 
transition information. Since the updates for the PC happened 
automatically, I'd guess that the OS that you have on your Windows CE device 
does not have the latest DST updates in it (or you're using an old registry 
from a time before the updates were made). 

我已经装了081231 QFE,但是注册表是06年后就没有更新的,有可能是这样引起的?这样的话要怎么改?

#1


补充一点,根据夏令时自动调节时钟是选中的

#2


你的PC上有没有选中夏时制??

#3


选中了.

#4


各位大侠,没有遇到过这个问题吗!

#5


看表现是PDA获取了时间更新了注册表,但是没有实时显示。重启后能显示正确时间。
你应该查查为什么不更新实时显示的时间。

#6


在Windows Mobile里面,这个问题是通过将“常住城市”和“访问城市”的时区设成一样来解决的,但是在WinCE里面,控制面板的时间里面看到的时区应该只是“常住城市”的时区。通过在Platform.reg里面加以下键值,可以将默认的“访问城市”的时区设成“GMT+8 北京”
[HKEY_LOCAL_MACHINE\Software\Microsoft\Clock]
"AppInfo"=hex:01,00,00,00,31,00,00,00,D2,00,00,00,00,00,00,00,00,00,00,00,80,01,00,\
  00,D2,00,00,00,00,00,00,00,00,00,00,00
字串的意义不是很明白,如果需要改成其他时区,可以通过微软的Windows Mobile模拟器,修改“访问城市”时区后,再读取这个键值来得到。

#7


引用 5 楼 shuiyan 的回复:
看表现是PDA获取了时间更新了注册表,但是没有实时显示。重启后能显示正确时间。 
你应该查查为什么不更新实时显示的时间。


有道理啊,我查找了控制面板关于时间设定部分的代码和关于夏令时(DST)的代码.
搜索了相关的网页,把SetLocalTime 函数调用两次。
编译后usb经常联不上activesync。偶尔能连上时测试同步时间是相同的,于是我修改了相同的地方在另外一台计算机上编译,但是编译后的同步时间还是不对,差一小时,因为我修改的代码是
C:\WINCE500\PUBLIC\WCESHELLFE\OAK\TASKMAN\dst.cpp

C:\WINCE500\PUBLIC\WCESHELLFE\OAK\CTLPNL\CPLMAIN\datetime.cpp

涉及到了这两个目录,不知道为什么我的笔记本上编译的同步时间一致,但usb经常连不上activesync。
而在另一台计算机上编译的结果,同步时间还是有问题,但usb连接正常。

#8


引用 6 楼 wd1394 的回复:
在Windows Mobile里面,这个问题是通过将“常住城市”和“访问城市”的时区设成一样来解决的,但是在WinCE里面,控制面板的时间里面看到的时区应该只是“常住城市”的时区。通过在Platform.reg里面加以下键值,可以将默认的“访问城市”的时区设成“GMT+8 北京” 
[HKEY_LOCAL_MACHINE\Software\Microsoft\Clock] 
"AppInfo"=hex:01,00,00,00,31,00,00,00,D2,00,00,00,00,00,00,00,00,00,00,00,80,01,00,\ 
  00,D2,00,00,00,…

我们买的一个hp的win moble的pda是同步时间相同的,发现他的设置系统时间的控制面板里没有自动调节DST选项。

我刚查了下 ince的注册表,[HKEY_LOCAL_MACHINE\Software\Microsoft\Clock]下只有一个键值:
AutoDST

#9


微软论坛的回复如下:
If the date/time for transitions for daylight saving time are wrong, then 
you have not installed either a) the QFEs for Windows CE that have the 
updated DST information, or b) the desktop updates that have the latest DST 
transition information. Since the updates for the PC happened 
automatically, I'd guess that the OS that you have on your Windows CE device 
does not have the latest DST updates in it (or you're using an old registry 
from a time before the updates were made). 

我已经装了081231 QFE,但是注册表是06年后就没有更新的,有可能是这样引起的?这样的话要怎么改?