DataWeave 2.0转换ISO时间为指定日期格式不生效问题求助
问题原因
- 你当前操作的
created_time初始为字符串类型的时间值,直接执行as String属于同类型转换,format参数不会生效 format配置仅在日期时间类型与字符串类型互相转换时才会生效,需要先把源字符串解析为DateTime类型,再格式化输出为目标格式的字符串
解决方案
修正后的脚本如下:
%dw 2.0 output application/csv --- payload.data map (item, index) -> { created_time: (item.created_time as DateTime {format: "yyyy-MM-dd'T'HH:mm:ssZ"}) as String {format: "yyyy-MM-dd"}, }
补充说明:
- 你提供的源时间格式
2021-11-29T13:02:04+0000对应的解析规则为yyyy-MM-dd'T'HH:mm:ssZ,其中时间分隔符T需要加单引号转义,Z匹配末尾的时区偏移量+0000部分 - 如果你需要按指定时区转换日期(比如获取北京时间对应的日期),可以在转String时增加时区配置,示例:
as String {format: "yyyy-MM-dd", timezone: "Asia/Shanghai"}
内容的提问来源于stack exchange,提问作者Anonim
相关产品推荐
相关产品推荐

