美国和E.U PC的日期/时间不同 - 德尔福不喜欢这样

时间:2011-02-16 11:29:34

标签: delphi datetime

我在程序中使用DateTime值。在使用它们时,我的丹麦Windows 7上的一切正常 - 但是,当我将我的应用程序发送给拥有美国PC(具有不同日期/时间格式)的人时,它会爆炸。我得到那些xx-xx-xx不是一个有效的日期和时间值“(或类似的东西)。

我尝试在程序启动时设置LongDateFormat和DateSeparator值,但这样做也不起作用?

我该怎么做,以便我的应用程序具有相同的日期/时间格式,无论它在何处运行?

编辑:这是我创建DateTime值的方法:

// David's Suggestion:
dtLastOnline := dedtLastOnline.Date + tpLastOnline.Time;

由于

  • 杰夫

2 个答案:

答案 0 :(得分:5)

您需要以标准格式存储日期和时间(例如Delphi TDateTime)。您只能在显示它们时将它们转换为人类可读的形式。

在您进行编辑澄清之后,您需要做的是分别转换日期和时间,然后将两个结果TDateTime加在一起。

所以你的代码应该是:

dedtLastOnline.Date + tpLastOnline.Time

答案 1 :(得分:0)

你在哪里得到“不是有效的日期和时间价值”错误? 似乎是“字符串到TDatetime”转换错误,它与“.Date + .Time”计算无关。 你有堆栈跟踪吗?