加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Delphi中有一个将XML日期和时间转换为TDateTime的功能

发布时间:2020-12-15 10:17:02 所属栏目:大数据 来源:网络整理
导读:XML日期和时间为格式 ‘ – ‘? yyyy’ – ‘mm’ – ‘dd’T’hh’:’mm’:’ss(‘。 (ZZZZZZ)? 是 ? ‘ – ‘? yyyy是一个四位数或更多位数,可选负号数字,代表年份;如果超过四位数,则禁止前导零,并禁止“0000” ?剩余的“ – ”是日期部分的分隔
XML日期和时间为格式

‘ – ‘? yyyy’ – ‘mm’ – ‘dd’T’hh’:’mm’:’ss(‘。 (ZZZZZZ)?

? ‘ – ‘? yyyy是一个四位数或更多位数,可选负号数字,代表年份;如果超过四位数,则禁止前导零,并禁止“0000”

?剩余的“ – ”是日期部分的分隔符;

?第一个mm是代表月份的两位数字;

?dd是代表当天的两位数字;

?’T’是一个分隔符,表示时间跟随;

?hh是代表小时的两位数字;如果表示的分钟和秒数为零,则允许’24’,如此表示的dateTime值是第二天的第一个时刻(·值空间中的dateTime对象的hour属性不能大于23) ;

?’:’是时间段部分之间的分隔符;

?第二个mm是代表分钟的两位数字;

?ss表示整数秒的二位数字数字;

?’。 s(如果存在)表示分数秒;

?zzzzzz(如果存在)表示时区(如下所述)。

这里有更多的例子

简单的例子
2009-08-31T19:30:00

更复杂的例子

2002-10-10T12:00:00-05:00(2002年10月10日中午,中央夏令时以及美国东部标准时间)是2002-10-10T17:00:00Z,比2002年五个小时-10-10T12:00:00Z。

有关更多信息,请参阅www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html

解决方法

Delphi有一个 XSBuiltIns单元(自Delphi 6以来),它包含可以帮助您转换一些XML数据类型的数据类型:

> TXSDate
> TXSTime
> TXSDateTime

(还有更多,像TXSDecimal,你得到的想法)

所有这些至少包含这两种方法:

> NativeToXS
> XSToNative

你可以这样使用:

with TXSDateTime.Create() do
  try
    AsDateTime := ClientDataSetParam.AsDateTime; // convert from TDateTime
    Attribute.DateTimeValue := NativeToXS; // convert to WideString
  finally
    Free;
  end;

with TXSDateTime.Create() do
  try
    XSToNative(XmlAttribute.DateTimeValue); // convert from WideString
    CurrentField.AsDateTime := AsDateTime; // convert to TDateTime
  finally
    Free;
  end;

那应该让你走了

–jeroen

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读