delphi – 我如何将str转换为datetime?
发布时间:2020-12-15 10:10:45 所属栏目:大数据 来源:网络整理
导读:我如何将“2012年8月2日18:53”转换为DateTime? 当我使用StrToDate进行转换时,会出现错误’无效的日期格式’ 解决方法 您可以使用VarToDateTime(在Variants单元中找到),它支持Delphi的RTL不支持的各种时间格式. (它基于COM的日期支持例程,如各种Microsoft产
我如何将“2012年8月2日18:53”转换为DateTime?
当我使用StrToDate进行转换时,会出现错误’无效的日期格式’ 解决方法
您可以使用VarToDateTime(在Variants单元中找到),它支持Delphi的RTL不支持的各种时间格式. (它基于COM的日期支持例程,如各种Microsoft产品中使用的例程.)我使用您提供的日期进行测试,并且确实将其正确地转换为TDateTime.在Delphi 2007和XE2上进行了测试.
program Project2; {$APPTYPE CONSOLE} {$R *.res} uses SysUtils,Variants; var DT: TDateTime; TestDate: String; begin TestDate := '02 August 2012 18:53'; try DT := VarToDateTime(TestDate); { TODO -oUser -cConsole Main : Insert code here } except on E:Exception do Writeln(E.Classname,': ',E.Message); end; Writeln(FormatDateTime('mm/dd/yyyy hh:nn',DT)); Readln; end. 当前documentation中的更多信息,包括另一个使用示例(该页面底部的链接). 请注意,Variants单元中的函数使用默认的用户区域设置.如果它不是“US”,则从上面的字符串转换可能会失败.在这种情况下,您最好直接从指定美国语言环境的activex单元调用VarDateFromStr: uses sysutils,activex,comobj; var TestDate: String; DT: TDateTime; begin try TestDate := '02 August 2012 18:53'; OleCheck(VarDateFromStr(WideString(TestDate),$0409,Double(DT))); Writeln(FormatDateTime('mm/dd/yyyy hh:nn',DT)); Readln; except on E:Exception do Writeln(E.Classname,E.Message); end; end. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容