昨天有一位网友在群聊中提到了这个问题,晚上回去想了很久。花了三个小时,终于找到了解决的方法,现在拿出来与大家分享:
首先想到的是tdatetimepicker控件有没有属性来实现这一功能的转换,因为这样做的好处不言而知。在我看了tdatetimepicker、
tcommoncalendar这两个类的源码后得出了结论,不能用控件的属性或过程来实现这一转换。
于是只好改变思路:
我们知道,在windows下可以修改时间的显示方式,具体方法如下:
“控制面板”->“区域选项”(winxp则是“日期与时间的显示方式”)->“时
间”。在“时间格式”一栏中可以修改时间的显示格式,具的显示格式可在在“外观
示例”中可以看到。
现在可以知道“h:mm:ss”显示的是24小时制,而“tth:mm:ss”显示的则是12小时
制。
我们把“时间格式”设置为“tth:mm:ss”后再点击“确定”按钮退出。
现在再来在窗体上放一个tdatetimepicker控件,ok,达到的预期的效果。
刚准备舒一口气,又转念一想,程序到了别人的电脑那不是又不行了??
看来,还得继续工作。
我们知道windows的系统设置一般都保存在注册表中。现在的关键是找到时间显示格式所保存的注册表主键。
想一下,用的注册表搜索功能。
我现在的系统时间是12小时制,它的显示格式是“tth:mm:ss”。好,就来搜索这个
吧。终于找到了第一个,仔细思量一下,应该是的:主键是:
hkey_current_user\controlpanel\international
而其中的stimeformat键值名就是时间格式。
但是,里边还有那么多的键值,要修改哪些呢?又是一个问题。
想了一下,行,就用这个办法:
1、导出主键
2、在控制面板中把系统时间改为24小时制
3、再导出主键
4、运行两个记事体实例,分别打开刚才导出的主键(扩展名为.reg)
5、比较,删除键值名和数据都相同的行
<
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器