字符串转DateTime/Date类型:
支持格式样例:
2016-2-6;16-02-06;20160206;160206;06-02-2016;
06Feb2016;6Feb2016;06FEB16;6FEB16;06-FEB-2016;6-FEB-16;
日期分隔符号支持4个: /-.\
interface
uses system.RegularExpressionsCore,system.StrUtils;
//字符串转DateTime类型
Function myStrToDateTime(sdate: String; defaultDate: TDateTime = 0): TDateTime;
//字符串转Date类型
Function myStrToDate(sdate: String; defaultDate: TDate = 0): TDate;
//英文字母月份转换为对应数字月份.
function ReplaceMonStr(Adate: String): String;
// 截取符合正则表达式的字符串函数.
function MyPerlRegString(srcstr, pattern: String): String;
// 判断字符串是否符合正则表达式的函数.
function MyPerlRegBool(srcstr, pattern: String): boolean;
// 替换符合正则表达式的字符串函数.
function MyPerlRegReplace(srcstr, pattern, newstr: String): String;
implementation
Function myStrToDateTime(sdate: String; defaultDate: TDateTime = 0): TDateTime;
var
Result := 0;
sdate := ReplaceStr(sdate, '.', '-');
sdate := ReplaceStr(sdate, '/', '-');
sdate := ReplaceStr(sdate, '\', '-');
sdate := ReplaceText(sdate, '年', '-');
sdate := ReplaceText(sdate, '月', '-');
sdate := ReplaceText(sdate, '日', '-');
// 日期部分默认格式:yyyy-MM-dd.
MyFormatSettings.ShortDateFormat := 'yyyy-MM-dd';
MyFormatSettings.LongDateFormat := 'yyyy-MM-dd';
// 日期部分是ddMMMyyyy格式,转换为dd-MM-yyyy.
if MyPerlRegBool(sdate, '^\d{1,2}[\-]?[A-Z]{3,9}[\-]?\d{4}\b') then
begin
sdate := ReplaceMonStr(sdate);
MyFormatSettings.ShortDateFormat := 'dd-MM-yyyy';
MyFormatSettings.LongDateFormat := 'dd-MM-yyyy';
end
// 日期部分是ddmmmyy格式,转换为dd-MM-yy格式.
支持格式样例:
2016-2-6;16-02-06;20160206;160206;06-02-2016;
06Feb2016;6Feb2016;06FEB16;6FEB16;06-FEB-2016;6-FEB-16;
日期分隔符号支持4个: /-.\
interface
uses system.RegularExpressionsCore,system.StrUtils;
//字符串转DateTime类型
Function myStrToDateTime(sdate: String; defaultDate: TDateTime = 0): TDateTime;
//字符串转Date类型
Function myStrToDate(sdate: String; defaultDate: TDate = 0): TDate;
//英文字母月份转换为对应数字月份.
function ReplaceMonStr(Adate: String): String;
// 截取符合正则表达式的字符串函数.
function MyPerlRegString(srcstr, pattern: String): String;
// 判断字符串是否符合正则表达式的函数.
function MyPerlRegBool(srcstr, pattern: String): boolean;
// 替换符合正则表达式的字符串函数.
function MyPerlRegReplace(srcstr, pattern, newstr: String): String;
implementation
Function myStrToDateTime(sdate: String; defaultDate: TDateTime = 0): TDateTime;
var
dtPart: String;
MyFormatSettings : TFormatSettings;
beginResult := 0;
sdate := ReplaceStr(sdate, '.', '-');
sdate := ReplaceStr(sdate, '/', '-');
sdate := ReplaceStr(sdate, '\', '-');
sdate := ReplaceText(sdate, '年', '-');
sdate := ReplaceText(sdate, '月', '-');
sdate := ReplaceText(sdate, '日', '-');
// 日期部分默认格式:yyyy-MM-dd.
MyFormatSettings.ShortDateFormat := 'yyyy-MM-dd';
MyFormatSettings.LongDateFormat := 'yyyy-MM-dd';
// 日期部分是ddMMMyyyy格式,转换为dd-MM-yyyy.
if MyPerlRegBool(sdate, '^\d{1,2}[\-]?[A-Z]{3,9}[\-]?\d{4}\b') then
begin
sdate := ReplaceMonStr(sdate);
MyFormatSettings.ShortDateFormat := 'dd-MM-yyyy';
MyFormatSettings.LongDateFormat := 'dd-MM-yyyy';
end
// 日期部分是ddmmmyy格式,转换为dd-MM-yy格式.