在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(如果存在)表示时区(如下所述)。 这里有更多的例子 简单的例子 更复杂的例子 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 (还有更多,像TXSDecimal,你得到的想法) 所有这些至少包含这两种方法: > NativeToXS 你可以这样使用: 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |