强大的字符串转DateTime/Date类型函数

字符串转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

  dtPart: String;

  MyFormatSettings : TFormatSettings;

begin
  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格式.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值