WINDOWS系统默认的短日期格式是:yyyy/m/d,在DELPHI中进行字符串互转时,经常会因为格式问题而转换失败,以前都是要求施工人员或客户手动修改系统的短日期格式为:yyyy-mm-dd来解决,近来无事找了一下相关资料,可以解决该问题
在应用程序打开时,可以通过TFormatSettings来设置应用程序的默认日期和时间格式
uses
SysUtils, Windows;
GetLocaleFormatSettings(GetUserDefaultLCID,FSetting);
FSetting.DateSeparator := '-';
FSetting.ShortDateFormat := 'yyyy-mm-dd';
FSetting.ShortTimeFormat := '00:00';
FSetting.LongDateFormat := 'yyyy-mm-dd';
FSetting.LongTimeFormat := '00:00:00';
//日期时间字符串转换为TDateTime
sTime := FormatDateTime('yyyy-mm-dd hh:mm:ss',Now);
ADOQ.Fields[0].AsDateTime := StrToDateTime(sTime,FSetting);
通过FSetting来对日期时间格式的字符串进行TDateTime转换就不会再出现异常了。
本文介绍在DELPHI中如何通过TFormatSettings设置应用程序默认的日期和时间格式,以解决因WINDOWS系统默认短日期格式为yyyy/m/d而导致的字符串转换失败问题。通过调整FSetting的DateSeparator和ShortDateFormat属性,可以避免日期时间字符串转换为TDateTime时出现异常。
459

被折叠的 条评论
为什么被折叠?



