【发布时间】:2013-12-09 09:39:15
【问题描述】:
我正在将 Delphi 7 应用程序迁移到 Delphi XE4。 DateToStr 函数在两个版本中的行为不同。
例如:
DateToStr(IncDay(Today, -9)) 计算结果为 11/30/2013 in Delphi 7 而 30/11/3013 in Delphi XE4。
这意味着,Delphi 7 以mm/dd/yyyy 为日期,而 Delphi XE4 以dd/mm/yyyy 为日期。在Delphi XE4哪里可以设置成mm/dd/yyyy?
注意:我不想在进行此转换的每个地方都使用格式设置修改代码。我只想在一个地方做这个改变,可能是Delphi XE4的一些设置文件。
【问题讨论】:
-
反对票是怎么回事?
-
最安全的方法是明确使用 FormatDateTime('yyyyddmm',TDateTime)。这样您就不必依赖格式设置,例如,当它在另一个区域使用时可能会破坏您的应用程序。 (当然是 FormatDateTime('mm/dd/yyyy',TDateTime),但我对 yyyymmdd 有强烈的偏好)
-
@PieterB 还有
DateToStr的两个参数重载 -
@DavidHeffernan 这也可以。我只是不喜欢依赖全局格式设置,所以我总是很明确。
-
@PieterB 这取决于您的需求。如果您想使用用户的语言环境,则可以依赖
FormatSettings。这就是他们的目的。如果你想要一种文化不变的格式,那么显然你需要明确。
标签: delphi date delphi-7 delphi-xe4