delphi日期时间格式错误
德尔菲。 我需要将datetime字符串转换为TDateTime类型。我使用的代码是:delphi日期时间格式错误,delphi,datetime,timestamp,Delphi,Datetime,Timestamp,德尔菲。 我需要将datetime字符串转换为TDateTime类型。我使用的代码是: ... var fs : TFormatSettings; dt: TDateTime; begin fs := TFormatSettings.Create; fs.DateSeparator := '-'; fs.TimeSeparator := ':'; fs.ShortDateFormat := 'dd-mmm-yy'; fs.ShortTimeFormat := 'hh:
...
var
fs : TFormatSettings;
dt: TDateTime;
begin
fs := TFormatSettings.Create;
fs.DateSeparator := '-';
fs.TimeSeparator := ':';
fs.ShortDateFormat := 'dd-mmm-yy';
fs.ShortTimeFormat := 'hh:nn:ss';
dt := StrToDateTime(Timestamp, fs);
...
字符串如下所示:Timestamp:=“26-Feb-16 08:30:00”
我只收到转换错误消息
EConvertError,“26-Feb-16 08:30:28”不是有效的日期和时间
如果我手动输入格式为“yyyy/mm/dd hh:nn:ss”的时间戳,并使ShortDateFormat:=“yyy/mm/dd”;和ShortTimeFormat:=“hh:nn:ss”;我没有问题
我不知道我错过了什么?有人有线索吗?
strodatetime
不支持将月份指定为名称的格式,无论是短格式还是长格式
您必须使用其他方法解析文本。坦率地说,这种格式很容易解析
-
上拆分日期部分以获得日、月和年部分。搜索12个短月份名称以查找匹配项李>
:
上的时间部分以查找小时、分钟和秒。或者使用strotime
或者,您可以接受输入,将短月份名称替换为月份编号,并将
strodatetime
与mm
month格式一起使用。当您报告看到错误消息但未包含其内容时,总是令人沮丧。这对我来说意味着您没有阅读错误消息。当人们遇到错误消息时,他们常常会呆若木鸡,因为他们认为他们不会理解错误消息,或者无法理解错误消息,或者错误消息没有传达任何有用的信息,或者我不知道是什么。无论如何,你永远不会知道,错误消息可能有用。永远不要忽略这些细节。Version Delphi 10 Seattletit说转换错误:-)EConvertError,“26-Feb-16 08:30:28”不是有效的日期和时间我发布的答案提供了比自己解析日期更简单的解决方案。