Altova mapforce字符串日期为DateTime

时间:2012-06-22 22:45:54

标签: altova

希望其他人使用Altova Mapforce。

使用XSLT将一个xml转换为另一个xml,在源XML中,它们的日期为M / D / YYYY,我需要将它们转换为...使用的标准日期时间格式。

所以,我正在使用XSLT的tokenize函数来分割/获取我的部分,现在,我想参加第1部分并说它是当天,但不知道如何分配tokenize表达式的结果使用MapForce来变量。

其他人这样做了吗?或者更确切地说,将字符串日期转换为日期时间的最佳方法是什么?

感谢您的想法

EDIT。我的输入是一个字符串'1/31/2012',我的输出需要是xs:dateTime(或xs:date,假设xs:date可以很容易地转换为dateTime)

我有一个方法设置来将字符串连接在一起并将它们转换为YYYY-MM-DD格式,但它仍然报告这对dateTime无效(Cast Failed,无效的词汇值2012-1-31)

也许YYYY-MM-DD不是dateTime的有效格式?

3 个答案:

答案 0 :(得分:1)

结束创建组件来执行此操作。我的特殊问题是“2012-1-31”无法格式化为日期或日期时间,但2012-01-31可以。因此,在尝试转换为日期之前,这就像格式化数字和填充字符一样简单。

答案 1 :(得分:0)

此示例使用EXSLT(因为我无法访问XSLT 2.0),但您明白了。

<xsl:variable name='date_parts' select='str:split(root/date, "/")' />
<xsl:value-of select='concat($date_parts[3],$date_parts[1],$date_parts[2])' />

您可以在this playgorund session

进行测试

答案 2 :(得分:0)

您可以使用库中的xs:datetime / format-dateTime