首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >delphi日期时间格式错误

delphi日期时间格式错误
EN

Stack Overflow用户
提问于 2016-02-29 11:59:42
回答 1查看 2.9K关注 0票数 2

德尔菲。我需要将日期时间字符串转换为TDateTime类型。我使用的代码:

代码语言:javascript
复制
...
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);
...

字符串如下:时间戳:=‘26-2月16日08:30:00’

我只得到转换错误信息

EConvertError,“26-Feb-16 08:30:28”不是有效的日期和时间

如果我手动输入格式'yyyy/mm/dd hh:nn:ss‘并使ShortDateFormat :=’yyyy/mm/dd‘和ShortTimeFormat :=’hh:nn:ss‘的时间戳;我没有问题.

我不知道我错过了什么?有人有线索吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-29 12:07:49

StrToDateTime不支持将月份指定为名称的格式,无论是短的还是长的。

您必须使用其他方法解析文本。坦率地说,这种格式很容易解析。

  1. 分割空格字符上的输入以获得日期和时间部分。
  2. -上拆分日期部分,以获得日期、月份和年份部分。搜索12个月短的名字,以找到匹配。
  3. :上分割时间部分以查找小时、分钟和秒。或者使用StrToTime

或者,您可以使用输入并将短月名称替换为月份号,并将StrToDateTime使用mm月份格式。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35698993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档