delphi – 覆盖系统日期格式
在我的应用程序中,我正在从一个数据库读取并写入第二个数据库.应用程序快速而且脏,所以我在查询的FieldByName和ParamByName上使用AsString进行读/写.
除了数据类型为Date或DateTime之外,这适用于我的所有用例 据我所知,FieldByName.AsString使用系统ShortDateTime格式返回日期(在我的例子中)dd / mm / yyyy.数据库期望将日期写为yyyy-mm-dd 根据Delphi Basics我应该能够将ShortDateFormat设置为我需要的东西,但似乎在XE5中不再是这种情况(对吗?) 进一步挖掘此处返回these two使用TFormatSettings覆盖本地设置的问题.但是,它们都直接在StrToDate和FormatDateTime中使用生成的FormatSettings. 所以有两个问题 1)我可以告诉我的应用程序覆盖系统ShortDateFormat吗? 2)如果是,如何(如果没有,我有B计划)? 解决方法
对于日期和时间格式使用全局变量是很久以前由原始RTL设计者犯下的错误.依赖于全局格式设置的函数(如单个参数StrToDate)是为了向后兼容而保留的,但您不应该使用它们.
对于日期/时间和字符串之间的转换,您应该: >使用您的日期格式初始化TFormatSettings实例. 现在,问题的主旨.在您描述的场景中,您不应该根据日期和时间使用字符串.使用AsDateTime而不是AsString.如果碰巧有一个数据库列将日期/时间存储为字符串,那么您应该使用基于TFormatSettings的转换函数来解决该设计错误. 如果你完全没有使用字符串来完成这一切,并且我无法说服你,那么你需要使用SysUtils中的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |