我正在使用msxml来解析xml文件。语言是C ++。 xml文件包含一些使用xsd:dateTime格式的日期和时间(类似于:2009-04-29T12:00:00Z)
有没有一种简单的方法可以将xsd:dateTime转换为类似SYSTEMTIME,FILETIME或VariantTime的内容?
答案 0 :(得分:1)
也许这可以帮助你:Using strptime to parse ISO 8601 formated timestamps on ioncannon.net。
答案 1 :(得分:0)
您可以使用javascript:
<xsl:transform
id="integra-transformer"
version="1.0"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:date="urn:date-scripts">
<xsl:output method="xml" indent="yes" />
<msxsl:script
implements-prefix="date"
language="javascript">
<![CDATA[
Date.prototype.toISO8601ShortString = function () {
var zeropad = function (num) { return ((num < 10) ? '0' : '') + num; }
var str = "";
var date = new Date();
str += date.getUTCFullYear();
str += "-" + zeropad(date.getUTCMonth() + 1);
str += "-" + zeropad(date.getUTCDate());
str += "T" + zeropad(date.getUTCHours()) +
":" + zeropad(date.getUTCMinutes());
return str;
}
function getToday()
{
var d;
d = new Date();
return(d.toISO8601ShortString());
}
]]>
</msxsl:script>
<xsl:template match="/">
<date>
<xsl:value-of select="date:getToday()"/>
</date>
</xsl:template>
</xsl:transform>
不要忘记在进行转换时启用脚本:
xslDom.setProperty("AllowXsltScript", true)