delphi 如何设置日期格式
1、使用formatdatetime函数格式化日期数据,function FormatDateTime(const Format: string; DateTime: TDateTime): string; Format参数是一个格式化字符串。

2、DateTime是时间类型。返回值是一种格式化后的字符串,重点来看Format参数中的指令字符:c以短时间格式显示时间,即全部是数字的表示FormatdateTime('c',now)。
3、输出为:2004-8-7 9:55:40,d 对应于时间中的日期,日期是一位则显示一位,两位则显示怎剑词阶两位,FormatdateTime('d',now);输出可能为1~3dd 和d的意义一样,但它始终是以两位来显示的,FormatdateTime('dd',now);输出可能为01~31,ddd 显示的是星期几,FormatdateTime('ddd',now);输出为: 星期六dddd 和ddd显示的是一样的。

4、在程序初始化时调用GetDateTimeFormat,将取出的设置保存起来,然后用SetDateTimeFormat设置需要的格式。在程序退出时再次调用SetDateTimeFormat将保存的值写回去。

5、所以在进行转换前,要确保系统的日期时间格式与程序中使用的相符。一种方法是在安装时由安装程序设置,或者明确告诉用户必须设置成要求格式。另一种就是程序在启动时,自动设定为需要的格式,退出程序时再恢复原来的设置。

6、两个函数的参数很类似,其中 Locale可以取两个值:LOCALE_SYS哌囿亡噱TEM_DEFAULT,表示要操作的是系统默认的设置; LOCALE_USER_DEFAULT,漉胜衲仰表示要操作的是当前用户的设置。还可以取其他值,用于具体修改某种语言区域的设置。一般取 LOCALE_USER_DEFAULT。

7、使用GetLocaleInfo或SetLocaleInfo时,每次只能操作一个类型。比如要同时设置短日期格式、长日期格式、时间格式,就必须分别用三个类型代号调用三次 SetLocaleInfo。

8、还要一个要注意的问题是,设置日期时间格式后,应该向当前系统的激活窗口广播发送 WM_SETTINGCHANGE 消息,否则即使修改了,程序里还是不能用的。

9、当然,如果程序已经在运行,别的程序也象我们这样把格式改成它需要的格式,那就没办法了,同时就只能运行一个,否则会互相干扰。如果一定要想办法的话,或许可以处理 WM_SETTINGCHANGE 消息,再把改掉的改回来?有点强盗。
