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

前端之家收集整理的这篇文章主要介绍了在Delphi中有一个将XML日期和时间转换为TDateTime的功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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

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

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

> NativeToXS
> @L_301_7@

你可以这样使用:

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

原文链接:https://www.f2er.com/delphi/103448.html

猜你在找的Delphi相关文章