Dataweave 2-无法解析日期时间的字符串

时间:2019-12-18 10:04:46

标签: datetime mule dataweave

在有效负载中,我得到一个简单的文本,如下例:

{date: "20191213294831"}

我正在尝试将其转换为字符串日期,例如"2019-12-13"。 这是我正在使用的代码:

newDate: (payload.date as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss"}) as String {format: "yyyy-MM-dd"}

但是我遇到以下错误:

  

由于以下原因,无法将字符串(20191213294831)强制转换为LocalDateTime:   无法在索引0处解析文本'20191213294831'

我也尝试了某些类型的DateTime,但是没有成功的结果。

代码有什么问题?

2 个答案:

答案 0 :(得分:4)

您的工作时间似乎已经关闭,我看到29确保这是一个有效的数字。

这对我有用,只要我将工作时间更改为合理的时间即可

%dw 2.0
output application/dw
var data = {date: "20191213224831"}
---

data.date 
    as LocalDateTime {format: "yyyyMMddHHmmss"} 
    as String {format: "yyyy-MM-dd"}

答案 1 :(得分:2)

用于解析输入的格式不正确。 payload.date as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss"}假定字符串的格式为'-'和':',并且日期和时间之间有空格。对于您的输入,正确的格式似乎是“ yyyyMMddHHmmss”,但是正如@George在他的回答中提到的,小时数(29)的值无效,并且将导致错误Cannot coerce String (20191213294831) to LocalDateTime, caused by: Text '20191213294831' could not be parsed: Invalid value for HourOfDay (valid values 0 - 23): 29。您需要传递一个有效的日期时间。