日期格式冲突的问题? 很郁闷的一件事情,如果Windows操作系统的默认显示的日期格式为yyyy-MM-dd时,软件可以正常使用,而一但遇到操作系统的默认显示日期的格式为MM/dd/yyyy软件就不能正常工作了.只有到windows的区域设置将日期格式改为yyyy-MM-dd才能正常使用,这样操作起来很麻烦(因为我软件中是按yyyy-MM-dd这种格式设置的.)请问高手们有没有办法解决.或者如何获取系统的日期格式. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 转换日期格式formatdatetime('yyyy-mm-dd',now()) 获取系统的日期格式:DateSeparator: -ShortDateFormat: yyyy-MM-ddLongDateFormat: yyyy'年'MM'月'dd'日' ddddTimeSeparator: :TimeAMString: 上午TimePMString: 下午ShortTimeFormat: hh:mmLongTimeFormat: hh:mm:ss DateTimePicker1.datetime:=strtodate(FormatDatetime('yyyy-mm-dd',DateTimePicker1.datetime));按照上面的语句总是出错的(因为系统日期格式是:MM/dd/yyyy,),只有将系统日期格式改为:yyyy-mm-dd后,上面的语句才通过.感谢:dulei115(前途无亮) 的提示.请问怎么做才能让软件中的yyyy-mm-dd去适应系统的MM/dd/yyyy的这种格式?谢谢 直接赋值不行吗?DateTimePicker1.datetime := DateTimePicker1.datetime;-----------------------------------DateTimePicker1.datetime:=strtodate(FormatDatetime(StringReplace(ShortDateFormat, 'MM', 'mm', []),DateTimePicker1.datetime)); 非常感谢:dulei115(前途无亮)的帮助,我已经受到了很大的启发.但还有点不太懂,比如我需要将DateTimePicker1.datetime的日期设置为本月的1日,我用下面语句还有出错:procedure TForm1.Button5Click(Sender: TObject);var Year,Month,Day: Word;begin DecodeDate(now,Year, Month, Day); DateTimePicker1.date:=strtodate(inttostr(year)+'-'+inttostr(month)+'-01');end;因为系统日期的格式有多种(如:yyyy/MM/dd;yyyy-M-d;yy-M-d;yy/M/d;yy/MM/dd;yy.MM.dd等等),所以说上面的语句必需使用系统格式来设置来能通过.再次请教!谢谢!!! 本月的1日DateTimePicker1.Date := IncDay(Now, 1 - DayOfTheMonth(Now));------------------------------------------------------------------如果LZ非得要用StrToDate,那这样var Year, Month, Day: Word; s: String;begin DecodeDate(Now,Year, Month, Day); s := ShortDateFormat; s := StringReplace(s, 'yyyy', FormatFloat('0000', Year), []); s := StringReplace(s, 'yy', FormatFloat('00', Year div 100), []); s := StringReplace(s, 'MM', FormatFloat('00', Month), []); s := StringReplace(s, 'M', FormatFloat('0', Month), []); s := StringReplace(s, 'dd', '01', []); s := StringReplace(s, 'd', '1', []); DateTimePicker1.date:=StrToDate(s);end; 不使用Delphi自带的日期函数。使用API函数中的GetSystemTime(&ST)或GetLocalTime(&st),st指向SYSTEMTIME的结构,这样出来的日期和时间想怎么转换就可以转换。 各位都没有说道点子上,正确方法如下:program pjtName;uses Forms, aaa in 'aaa.pas' , bbb in 'bbb.pas';{$R *.res}begin Application.Initialize; //加上这2行代码即可解决问题 DateSeparator := '-'; ShortDateFormat := 'yyyy-mm-dd';//或者'm/d/yyyy',等 // Application.CreateForm(Taaa, aaa); Application.Run;end. uses ..., SysUtils; 另外保险起见,在程序中遇到日期处理时,应该formatDateTime成一致的格式,烦是烦点,但是一种良好的编码习惯。 不早了,睡吧 请问那有财务发票样子的表格控件 cdma发送短信出现乱码----------------哭 50分求救!SPComm控件中串口读取的问题 Socket端口的打开与关闭问题 formactive 谁有ANIMATEIMAGE控件。 高分求助:为何编译成可执行后的程序在本机可以(装有delphi的机子也可以),而别的电脑却不能运行 如何使用select语句,使关联的两个表的其中一个表的空记录也能显示出来? 请求算法!!特急!!! 如何备份和恢复ACCESS数据库(不是直接复制哦) rave 报表怎么如何打印页小结
formatdatetime('yyyy-mm-dd',now())
DateSeparator: -
ShortDateFormat: yyyy-MM-dd
LongDateFormat: yyyy'年'MM'月'dd'日' dddd
TimeSeparator: :
TimeAMString: 上午
TimePMString: 下午
ShortTimeFormat: hh:mm
LongTimeFormat: hh:mm:ss
按照上面的语句总是出错的(因为系统日期格式是:MM/dd/yyyy,),只有将系统日期格式改为:yyyy-mm-dd后,上面的语句才通过.感谢:dulei115(前途无亮) 的提示.请问怎么做才能让软件中的yyyy-mm-dd去适应系统的MM/dd/yyyy的这种格式?
谢谢
-----------------------------------
DateTimePicker1.datetime:=strtodate(FormatDatetime(StringReplace(ShortDateFormat, 'MM', 'mm', []),DateTimePicker1.datetime));
var
Year,Month,Day: Word;
begin
DecodeDate(now,Year, Month, Day);
DateTimePicker1.date:=strtodate(inttostr(year)+'-'+inttostr(month)+'-01');
end;
因为系统日期的格式有多种(如:yyyy/MM/dd;yyyy-M-d;yy-M-d;yy/M/d;yy/MM/dd;yy.MM.dd等等),所以说上面的语句必需使用系统格式来设置来能通过.再次请教!
谢谢!!!
DateTimePicker1.Date := IncDay(Now, 1 - DayOfTheMonth(Now));
------------------------------------------------------------------
如果LZ非得要用StrToDate,那这样
var
Year, Month, Day: Word;
s: String;
begin
DecodeDate(Now,Year, Month, Day);
s := ShortDateFormat;
s := StringReplace(s, 'yyyy', FormatFloat('0000', Year), []);
s := StringReplace(s, 'yy', FormatFloat('00', Year div 100), []);
s := StringReplace(s, 'MM', FormatFloat('00', Month), []);
s := StringReplace(s, 'M', FormatFloat('0', Month), []);
s := StringReplace(s, 'dd', '01', []);
s := StringReplace(s, 'd', '1', []);
DateTimePicker1.date:=StrToDate(s);
end;
使用API函数中的GetSystemTime(&ST)或GetLocalTime(&st),
st指向SYSTEMTIME的结构,这样出来的日期和时间想怎么转换就可以转换。
Forms,
aaa in 'aaa.pas' ,
bbb in 'bbb.pas';{$R *.res}begin
Application.Initialize;
//加上这2行代码即可解决问题
DateSeparator := '-';
ShortDateFormat := 'yyyy-mm-dd';//或者'm/d/yyyy',等
// Application.CreateForm(Taaa, aaa);
Application.Run;
end.
...,
SysUtils;