delphi – 基于任意格式将字符串转换为TDateTime
在Delphi 5中有没有办法将字符串转换为TDateTime,您可以在其中指定要使用的实际格式?
我正在处理一个工作处理程序,它接受各种工作站的任务。这些任务有一系列参数,其中一些是日期,但是(不幸的是,我的控制之外)它们作为字符串传递。由于作业可能来自不同的工作站,因此用于将日期格式化为字符串的实际日期时间格式可能(当然也是实际的)不同。 Googling,我发现唯一的快速解决方案是偷偷地更改ShortDateFormat变量,然后将其恢复到其原始值。因为ShortDateFormat是一个全局变量,而且我正在一个线程环境中工作,唯一的方法是通过同步每个对它的访问,这是完全不可接受的(和可撤销的)。 我可以将SysUtils单元的库代码复制到我自己的方法中,并调整它们使用指定的格式而不是全局变量,但我只是想知道是否有更多的东西,我错过了。 亲爱的,并且提前感谢, 威廉 UPDATE 更简洁地说: 我需要像StrToDate(或StrToDateTime)这样的东西,增加的选项是指定它应该用来将字符串转换为TDateTime的确切格式。 解决方法
我为FreePascal的dateutils单元创建了这样的例程,如果需要移植,它应该很容易地移植。
码: http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/rtl-objpas/src/inc/dateutil.inc?revision=30628&view=co (代码是文件末尾的最后一个(巨大的)过程) 文档: http://www.freepascal.org/docs-html/rtl/dateutils/scandatetime.html 请注意,它不是formatdatetime的完整的反向,它有一些扩展: > FormatDateTime的倒数不是100%的倒数,只是因为可以把例如时间令牌在格式字符串中两次,而scandatetime不知道选择哪个时间。 >尾随字符被忽略。 >扩展 #9吃空白 (我相信这些意见稍微过时了,这个意义上,一些亚洲的支持后来被添加了,但我不确定) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |