又一个菜鸟问题!!(100分)

  • 主题发起人 主题发起人 luyaong
  • 开始时间 开始时间
L

luyaong

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了edit1.text:=datetostr(now),但edit1显示出来的是02-1-17,而我想象的是
2002-1-17。前面那个到哪去了?怎么让它出来?
 
var
; LT : TSYSTEMTIME;
; S :String;
begin
; GetLocalTime(LT);
; S :=(IntToStr(LT.wMonth) + '-' +
; ; ; IntToStr(LT.wDay) + ;'-' +
; ; ; IntToStr(LT.wYear) + ' ' +
; ; ; IntToStr(LT.wHour) + ;':' +
; ; ; IntToStr(LT.wMinute) + ;':' +
; ; ; IntToStr(LT.wSecond));
; ShowMessage(S);
end;
 
var astring:string;
datatimetostring(astring,'yyyy-MM-DD',now);
edit1.text:=astring;
 
不会呀,我是D6,showmessage(datetostr(now))后2002/1/17
 
用format行进行格式化
 
我也遇到过这种问题,这是因为系统时间的格式是yy-MM-dd的,
你到控制面版中区域里去把时间格式改为yyyy-MM-dd格式就行了
或者当你的程序初始化是用语句改也可以
SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SLONGDATE,'yyyy-MM-dd');
SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,'yyyy-MM-dd');
 
Edit1.Text:=FormatDateTime('yyyy-mm-dd',now);
 
这样可以出来啊,Edit1.Text:='20'+Datetostr(Now);
 
FormatDateTime('yyyy-mm-dd', now);
 
呵呵,除了上面的以外,还有一种方法:
; ;设置--控制面板--区域选项---日期--短日期格式
ok了
 
在主form的oncreate里写
LongDateFormat := 'yyyy-mm-dd';
ShortDateFormat := 'yyyy-mm-dd';
一劳永逸。
 
我用的也是D6
 
edit1.text:=FormatDateTime('dd-mm-yyyy',now);
 
同意SoftBoy,我都是这样干的!:)
procedure TForm1.FormCreate(Sender: TObject);
begin
; DateSeparator := '-';
; ShortDateFormat := 'yyyy-mm-dd';
; LongDateFormat := 'yyyy-mm-dd';
; TwoDigitYearCenturyWindow := 80;
; TimeSeparator := ':';
; ShortTimeFormat := 'HH:MM:SS';
end;
 
后退
顶部