在有效负载中,我得到一个简单的文本,如下例:
{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,但是没有成功的结果。
代码有什么问题?
答案 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
。您需要传递一个有效的日期时间。