在程序中用什么方法能把控制面版里的日期格式修改成"yyyy-m-d",分隔符为"-"?(简单都进来看看) ( 积分: 1

  • 主题发起人 主题发起人 Defo_XYF
  • 开始时间 开始时间
D

Defo_XYF

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中用什么方法能把控制面版里的日期格式修改成&quot;yyyy-m-d&quot;,分隔符为&quot;-&quot;?(简单都进来看看) ( 积分: 100 )<br />如题 ?
 
SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SDATE,'yyyy-mm-dd' );
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0,0);

程序中修改日期格式的系统API的说明

主要需要使用下面的windows API
BOOL SetLocaleInfo(
LCID Locale, // locale identifier
LCTYPE LCType, // type of information to set
LPCTSTR lpLCData // pointer to information to set
);
本函数主要用于windows系统中设置系统的区域选项,主要包括时间,语言等选项的设置。
LCID:locale identifier (区域标志)
在系统中有两个默认值:
LOCALE_SYSTEM_DEFAULT:系统默认的区域选项;
LOCALE_USER_DEFAULT:当前用户的区域选项;
同时用户也可以通过 MAKELCID宏动态创建LCID;
LCType:需要设定的系统信息类型;
主要包括下面的值:
LOCALE_ICALENDARTYPE LOCALE_SDATE
LOCALE_ICURRDIGITS LOCALE_SDECIMAL
LOCALE_ICURRENCY LOCALE_SGROUPING
LOCALE_IDIGITS LOCALE_SLIST
LOCALE_IFIRSTDAYOFWEEK LOCALE_SLONGDATE
LOCALE_IFIRSTWEEKOFYEAR LOCALE_SMONDECIMALSEP
LOCALE_ILZERO LOCALE_SMONGROUPING
LOCALE_IMEASURE LOCALE_SMONTHOUSANDSEP
LOCALE_INEGCURR LOCALE_SNEGATIVESIGN
LOCALE_INEGNUMBER
 
楼主可以通过对SysUtils单元中的ShortDateFormat, LongDateFormat和DateSeparator变量赋值达到你想到的结果。
 
http://www.tomore.com/1/36594.html
 
To 0桁骀
你的方法我用了,他根本不能改变控制面版里的格式,你能不能提供一个改变控制面版格式的方法.
因为我在程序中有很多地方是提取系统时间(Date)的,而我用到的格式就是yyyy-m-d,现在格式变成yyyy/m/d就不好用了,提示是无效的时间格式.
我该怎么办?
 
SetLocaleInfoA(GetThreadLocale, LOCALE_SDATE, '-'#0);
SetLocaleInfoA(GetThreadLocale, LOCALE_SSHORTDATE, 'yyyy-M-d'#0);
不好意思,没有看到前面的答案,答案收回!
 
刚好用到,学习
 
问题已经解决,TrustMe和HellBeast提供的是一样的方法.
SetLocaleInfoA(GetThreadLocale, LOCALE_SSHORTDATE, 'yyyy-m-d'#0);
To:TrustMe
你不要这样说,我们来到这里的目的是学习,重在参与嘛,谢谢大家了!
 
后退
顶部