字符串转TDateTime(VarToDateTime(string))

字符串转TDateTime的时候,如果格式与系统的长短日期不符合,就会报异常,此时一个通用的解决方法为,软件启动的时候设置软件的长短日期格式,如下图所示:

Application->UpdateFormatSettings = false;
FormatSettings.ShortTimeFormat = "HH:NN:SS";
FormatSettings.ShortDateFormat = "yyyy-mm-dd";
FormatSettings.DateSeparator = '-';

这样,TDateTime dtTmp(“2018-05-01 10:10:10”)或者StrToDateTime(“2018-05-01 10:10:10”); 无论系统的短日期格式是何种格式,软件都不会报错。
但如果日期时间字符串来自其他地方,格式不明确,比如:
TDateTime dtTmp(Query->FiledByName(“FileTime”)->AsString);
如果此时Query检索出来的日期时间格式为"yyyy/mm/dd",则会报EConvertError异常:“xx/xx/xx xx:xx:xx is not a valid date and time”。
为了解决这种问题,可以使用另外一种字符串转TDateTime:
VarToDateTime(String)
此函数兼容长短格式的日期时间字符串,比如2018/05/01 10:10:10 和2018-05-01 10:10:10,但如果字符串是无意义的字符串,比如空字符串或其他字符串,比如“abc”,则会抛出异常:EVariantTypeCastError,Could not convert variant of type (String) into type (Date) 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值