Mule datamapper DateTime转换为字符串';yyyy-MM-dd';T';HH:mm:ss.SSSZ';

Mule datamapper DateTime转换为字符串';yyyy-MM-dd';T';HH:mm:ss.SSSZ';,datetime,mule,mule-studio,mule-el,mule-component,Datetime,Mule,Mule Studio,Mule El,Mule Component,我有一个请求xml,其日期时间字符串为“2014-09-23T00:00:00.000+01:00”,我正在使用Mule 3.5 datamapper将其映射到xs:dateTime类型的元素。 Datamapper在内部应用str2日历(Str,Str)函数或映射。 因此,我对脚本进行了如下编辑: output.dateAndTimeString = str2calendar(input.dateAndTime, "yyyy-MM-dd'T'HH:mm:ss.SSSZ"); 日志中的错误是:

我有一个请求xml,其日期时间字符串为“2014-09-23T00:00:00.000+01:00”,我正在使用Mule 3.5 datamapper将其映射到xs:dateTime类型的元素。 Datamapper在内部应用str2日历(Str,Str)函数或映射。 因此,我对脚本进行了如下编辑:

output.dateAndTimeString = str2calendar(input.dateAndTime, "yyyy-MM-dd'T'HH:mm:ss.SSSZ");
日志中的错误是:

java.text.ParseException: Unparseable date "2014-09-23T00:00:00.000+01:00"

Mule data mapper或我的转换技术有什么问题吗?

您可以删除“Z”并使用重载的str2日历设置默认时区。此示例使用MEL表达式获取服务器时区:


output.dateAndTimeString=str2日历(input.dateAndTime,“yyyy-MM-dd'T'HH:MM:ss.SSS”,server.timeZone)

但是在映射之后,结果中有一个Z代替了+01:00,第三方web服务进一步无法将其识别为有效的dateTime。是否添加了重载的时区参数?我尝试了类似timezone.getTimezone('UTC'),但错误类似于无法识别的组件时区。