一个GUI程序,程序界面有实时日期时间显示,通过双击桌面图标运行时,时间显示正常,是24小时制
但通过DOS命令启动时,时间总是显示成12小时格式,如:“2013-11-02 上午 10:12:23”等
不管是设置控制面板里的区域与语言选项的自定义时间格式,还是按照网上说的修改HKEY_CURRENT_USER\Control Panel\International下的sTimeFormat的值,都无法使其显示24小时格式。
当把区域-标准和格式选择成瑞典语时,时间倒是显示对了,是24小时格式的,但打开程序,所有的汉字都变成了“?”
迷茫中,不断探索,想只要瑞典语能显示,中国语也一定能显示,
搜索注册表,发现在HKEY_USER的[HKEY_USERS\.DEFAULT\Control Panel\International]下也有sTimeFormat键
但修改后还是无效,迷茫很久,查看其中的键值都是修改语言格式啥的,想肯定在这里面了,发现一个键itime=0
试着将其键值改为1,即:itime=1;F5刷新,哈哈,ok。
修改后导出的键值如下:
Windows Registry Editor Version 5.00
[HKEY_USERS\.DEFAULT\Control Panel\International]
"iCountry"="86"
"iCurrDigits"="0"
"iCurrency"="0"
"iDate"="2"
"iDigits"="2"
"iLZero"="1"
"iMeasure"="0"
"iNegCurr"="1"
"iTime"="1"
"iTLZero"="1"
"Locale"="00000804"
"s1159"="上午"
"s2359"="下午"
"sCountry"="中国"
"sCurrency"="¥"
"sDate"="-"
"sDecimal"="."
"sLanguage"="CHS"
"sList"=","
"sLongDate"="yyyy'年'MM'月'dd'日'"
"sShortDate"="yyyy-MM-dd"
"sThousand"=","
"sTime"=":"
"sLongDate16"="dddd', 'MMMM' 'dd', 'yyyy"
"iTimePrefix"="1"
"iCentury"="0"
"iDayLZero"="1"
"iMonLZero"="1"
"iChinaYear"="0"
"iCalendar"="1"
"sTimeFormat"="H:mm:ss"
[HKEY_USERS\.DEFAULT\Control Panel\International\Geo]
"Nation"="45"