我有一个请求xml,其dateTime字符串为"2014-09-23T00:00.000+01:00",我正在使用Mule 3.5数据映射器将其映射到xs:dateTime类型的元素。Datamapper在内部应用str2Calendar(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数据映射器或我的转换技术有什么问题吗?
您可以删除'Z'并使用重载的str2calendar来设置默认时区。本例使用MEL表达式获取服务器时区:
output.dateAndTimeString=str2calendar(input.dateAndTime,"yyyy-MM-dd-'TH:MM:ss.SSS",server.timeZone);