【发布时间】:2016-04-07 11:15:13
【问题描述】:
我的以下代码在我的系统上运行良好,因为我的系统日期时间格式为 dd-mm-yyyy,但以下代码在系统日期时间格式为 dd/mm/yyyy 的情况下不起作用。
try
fmt.LongDateFormat:='dd-mm-yyyy';
fmt.DateSeparator :='-';
fmt.LongTimeFormat :='hh:nn:ss.z';
fmt.TimeSeparator :=':' ;
dateTime :=42467.51801;
strDate :=FormatDateTime('dd-mm-yyyy hh:nn:ss.z', dateTime);
time := StrToDateTime(strDate,fmt);
strDate :=FormatDateTime('dd-mm-yyyy hh:nn:ss.z', time);
ShowMessage('DateTime := ' +strDate) ;
except
on e: Exception do
ShowMessage('Exception message = '+e.Message);
end;
dd/mm/yyyy 格式的相同代码在我的系统上不起作用。请帮帮我。
【问题讨论】:
-
那么这怎么行不通呢?它会引发异常还是日期时间格式错误?
-
问题含糊不清。你说'与 dd/mm/yyyy 相同的代码不起作用'。 dd/mm/yyyy 在哪里?请也显示非工作代码,以便我们了解您的意思。另外,正如 J.Pelttari 所说,请解释“不起作用”的含义。
-
在我的系统上不起作用不是一个有用的问题描述,除非你告诉我们具体它是如何不起作用。如果您将日期格式正确分配给
ShortDateFormat而不是LongDateFormat,FormatDateTime与您发布的代码完美配合。对于您提供的日期,它会生成07-04-2016 12:25:56.64。 -
我的问题是,如果我在系统日历格式“'dd-mm-yyyy''上运行上面的代码,它会正常工作。但是,例如我的系统日期时间格式是“M/d/ yy”,上面的代码将在以下行时间出现异常:= StrToDateTime(strDate),异常如下 '07-04-2016 12:25:56.64' is not a valid date and time'。
-
我不能使用 VarToDateTime,因为 varToDateTime 函数没有以毫秒为单位给出时间。如果我传递的字符串时间长达毫秒,它再次给出异常。
标签: delphi datetime delphi-2006