【发布时间】:2015-10-21 14:06:32
【问题描述】:
我需要在我的移动设备中将我的时区设置为 c#(windows 嵌入式 ce)中的法语区
请问我该怎么做?
【问题讨论】:
标签: compact-framework windows-ce windows-embedded-compact compact-framework2.0
我需要在我的移动设备中将我的时区设置为 c#(windows 嵌入式 ce)中的法语区
请问我该怎么做?
【问题讨论】:
标签: compact-framework windows-ce windows-embedded-compact compact-framework2.0
您可以使用这个库来简化您的开发:https://opennetcf.codeplex.com/
我正在使用它并通过以下对象设置时区:TimeZoneCollection、TimeZoneInformation、DateTimeHelper。
【讨论】:
您不能将 TimeZone 设置为城市/位置,您只能设置 DST 数据。
================================================ ============== 您不能使用注册表设置时区的名称!
您只能设置 Offset 和 DST 值。然后时钟面板使用匹配的条目。
在注册表中,“GMT-7(美国山区)”和“GMT-7(亚利桑那州)”的值几乎相同
[HKEY_LOCAL_MACHINE\Software\Microsoft\Clock] "AppInfo"=hex(3):01,00,00,00,80,01,00,00,0f,00,00,00,00,00,00,00,00,00,00,00,3a ,01,00,00,69,00,00,00,00,00,00,00,01,00,00,00 “AppState”=十六进制(3):11 “自动夏令时”=dword:00000000 "GMT_OFFSET"=dword:000001A4 "HomeDST"=dword:00000000 "NetworkTimeNotifyUser"=dword:00000001 "NetworkTimeSync"=dword:00000001 "TZIndex"=dword:00000004
(另见http://peterfoot.net/HomeAndVisitingClocksInProfessionalEdition.aspx)
和
[HKEY_LOCAL_MACHINE\Software\Microsoft\Clock] "AppInfo"=hex(3):01,00,00,00,80,01,00,00,0a,00,00,00,00,00,00,00,01,00,00,00,3a ,01,00,00,69,00,00,00,00,00,00,00,01,00,00,00 “AppState”=十六进制(3):11 “自动夏令时”=dword:00000000 "GMT_OFFSET"=dword:000001A4 "HomeDST"=dword:00000001 "NetworkTimeNotifyUser"=dword:00000001 "NetworkTimeSync"=dword:00000001 "TZIndex"=dword:00000004
但是,如您所见,没有时区的名称字符串。
[HKEY_LOCAL_MACHINE\时间] "TimeZoneInformation"=hex(3):a4,01,00,00,55,00,53,00,20,00,4d,00,6f,00,75,00,6e,00,74,00,61 ,00,69,00,6e,00,20,00,53,00,74,00,61,00,6e,00,64,00,61,00,72,00,64,00,20,00 ,54,00,69,00,6d,00,65,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,55,00,53,00,20,00,4d,00 ,6f,00,75,00,6e,00,74,00,61,00,69,00,6e,00,20,00,44,00,61,00,79,00,6c,00,69 ,00,67,00,68,00,74,00,20,00,54,00,69,00,6d,00,65,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,c4,ff,ff ,ff
和
[HKEY_LOCAL_MACHINE\时间] "TimeZoneInformation"=hex(3):a4,01,00,00,4d,00,6f,00,75,00,6e,00,74,00,61,00,69,00,6e,00,20 ,00,53,00,74,00,61,00,6e,00,64,00,61,00,72,00,64,00,20,00,54,00,69,00,6d,00 ,65,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0b ,00,00,00,01,00,02,00,00,00,00,00,00,00,00,00,00,00,4d,00,6f,00,75,00,6e,00 ,74,00,61,00,69,00,6e,00,20,00,44,00,61,00,79,00,6c,00,69,00,67,00,68,00,74 ,00,20,00,54,00,69,00,6d,00,65,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,03,00,00,00,02,00,02,00,00,00,00,00,00,00,c4,ff,ff ,ff
这些是时区信息(TIME_ZONE_INFORMATION 结构)。
Clipboard02.gif
您可以按照附件(TZ-cities.txt)中的方式查询时区城市数据库。
附带的工具(timezoneset.exe)可用于更改当前活动时区的偏移量。
布拉格和柏林的时区信息相同:
索引:95 简称: GMT+1 布拉格,布达佩斯 名称:中欧标准时间 格林威治标准时间偏移:-60 dst name: 中欧夏令时 夏令时偏移:0 ...
索引:110 简称: GMT+1 柏林,罗马 名称:西欧标准时间 格林威治标准时间偏移:-60 目的地名称: W. Europe Daylight Time 夏令时偏移:0
dst 名称除外。
使用注册表设置时区信息不是一个好主意。
【讨论】: