Dataweave 2-无法将字符串强制为DateTime

Dataweave 2-无法将字符串强制为DateTime,datetime,timezone,mule,dataweave,string-to-datetime,Datetime,Timezone,Mule,Dataweave,String To Datetime,我有一个字符串作为DateTime,比如2019-05-21 00:00:00.000 这是我在Dataweave 2中用于将字符串转换为DateTime的代码: SourceDate: payload.Source_date as DateTime {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZ"} 但它返回以下错误: 无法将字符串2019-05-21 00:00:00.000强制为DateTime,导致 发件人:无法在索引10处分析文本“2019-05-21 00

我有一个字符串作为DateTime,比如2019-05-21 00:00:00.000

这是我在Dataweave 2中用于将字符串转换为DateTime的代码:

SourceDate: payload.Source_date as DateTime {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZ"}
但它返回以下错误:

无法将字符串2019-05-21 00:00:00.000强制为DateTime,导致 发件人:无法在索引10处分析文本“2019-05-21 00:00:00.000”


我需要使用“T”和“Z”来自动使用时区


可能是什么问题?

您可以使用LocalDateTime,它将使用当前时区:

%dw 2.0
output application/json
---
SourceDate: payload.Source_date as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss.SSS"}
SourceDate: payload.Source_date as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss.SSS"} >> "GMT+1"
您可以添加时区:

%dw 2.0
output application/json
---
SourceDate: payload.Source_date as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss.SSS"}
SourceDate: payload.Source_date as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss.SSS"} >> "GMT+1"

我需要使用'T'和Z'来自动使用时区。-然后,您需要将它们放在正在解析的字符串中。当前,您的值在日期和时间之间有一个空格,末尾没有Z。该值来自何处,您是否能够更改其格式?它来自CSV文件,这是它所期望的格式?您正在指定它所期望的格式:yyy-MM-dd'T'HH:MM:ss.SSSZ。基本上,你必须使你指定的格式与你得到的数据相匹配。。。或者自己修改数据。问题是它设置了相同的日期2019-05-21 00:00:00.000。例如,如果我从GMT+1使用它,它不会再添加一个hore。如果有帮助,则更新答案{格式:yyyy-MM-dd HH:MM:ss.SSS}>>GMT+1