您的位置:首页 > 编程语言 > Delphi

问题-[Delphi7]程序在WIN7电脑上的日期错误处理

2015-07-17 15:32 483 查看
问题现象:我想大家都遇到过在XP上没有问题的日期格式,到了WIN7之后就不行了。

问题原因:因为在WIN7中增加了新的日期格式,但是老的DELPHI未处理(如果我说错了,希望高人指点)。

问题处理:

function StrToDateWin7(DateStr: string): TDateTime;
var
T: TDateTime;
Fs: TFormatSettings;
begin
try
Fs.ShortDateFormat := 'yyyy-mm-dd';
Fs.DateSeparator := '-';
T := StrToDate(DateStr, Fs);
except
T := StrToDate('1899-01-01', Fs);
end;
Result := T;
end;

PS:

DateSeparator :Char

日期分隔符,用于分隔年月日
TimeSeparator :Char
时间分隔符,用于分隔小时,分钟,秒
ShortDateFormat:String
区域设置中短日期格式的定义。
LongDateFormat :String
区域设置中长日期格式的定义。
ShortTimeFormat:String
区域设置中短时间格式的定义。
LongTimeFormat :String
区域设置中长时间格式的定义。
TimeAMString :String
用来表示上午的字符串
TimePMString :String
用来表示下午的字符串
ShortMonthNames:array[1..12] of String;
用于缩略表示月份名称的数组,就是在使用FormatDateTime时显示的mmm标识的字符串
LongMonthNames:array[1..12] of String;
用于完整表示月份名称的数组,就是在使用FormatDateTime时显示的mmmm标识的字符串
ShortDayNames :array[1..7] of String;
用于缩略表示星期名称的数组,就是在使用FormatDateTime时显示的ddd标识的字符串
LongDayNames :array[1..7] of String;
用于完整表示星期名称的数组,就是在使用FormatDateTime时显示的ddd标识的字符串
TwoDigitYearCenturyWindow:Word = 50;
在使用两位年份时的起始年份。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: