比较两种不同区域格式的日期

时间:2014-07-17 18:59:49

标签: delphi datetime

我有一个XML文件存储了一个美国日期格式(M / d / YYYY)的日期。在我的应用程序中,我需要使用DaysBetween将该日期与当前日期进行比较。在将XML中的文本值作为string读取后,我尝试使用StrUtils.StrToDateTime(string)

当PC也以美国日期格式运行时,此功能正常。但是,当我将其更改为具有不同日期组件排列的格式(如英语(新西兰),即d / MM / yyyy)时,`StrToDateTime'在我的应用程序中出现错误,如:

&#39 6 /二千零十五​​分之十三'不是有效的日期和时间。

该日期是从XML文件中读取的日期。

是否有一种智能方法可以使用StrToDateTimeDaysBetween将美国格式的日期(将永远是这个)与不同类型的日期格式进行比较(应该适用于任何Windows语言环境)?< / p>

1 个答案:

答案 0 :(得分:3)

使用重载的function StrToDateTime(const S: string; const AFormatSettings: TFormatSettings): TDateTime;,它将指定的TFormatSetting作为输入。

根据您的美国区域设置填充TFormatSetting记录。

示例:

myUSLocale := TFormatSettings.Create('en-US');