【问题标题】:Dataweave 2 - String to DateTime could not be parsedDataweave 2 - 无法解析到 DateTime 的字符串
【发布时间】:2019-12-19 01:32:32
【问题描述】:

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

{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 但没有成功的结果。

代码有什么问题?

【问题讨论】:

    标签: datetime mule dataweave


    【解决方案1】:

    您的营业时间似乎已关闭,我看到 29 确保它是一个有效数字。

    这对我有用,只要我将时间更改为合理的:

    %dw 2.0
    output application/dw
    var data = {date: "20191213224831"}
    ---
    
    data.date 
        as LocalDateTime {format: "yyyyMMddHHmmss"} 
        as String {format: "yyyy-MM-dd"}
    

    【讨论】:

      【解决方案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。您需要传递一个有效的日期时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-14
        • 1970-01-01
        • 1970-01-01
        • 2020-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多