DataWeave 2.0如何将带时分秒的时间戳格式化为yyyy-mm-dd日期
你原来的写法存在两处错误:
- 格式符大小写错误:
yyyy-mm-dd中的小写mm代表分钟,月份需要使用大写的MM - 解析格式和输入字符串不匹配:你输入的时间戳字符串包含时分秒和7位小数秒,不能直接用
yyyy-MM-dd的格式将其解析为LocalDateTime类型
正确的写法可以参考如下示例:
%dw 2.0 output application/json var timeStamp = "2021-11-11 00:32:47.5220000" --- // 先按输入字符串的实际格式解析为LocalDateTime,再转换为指定格式的Date timeStamp as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss.SSSSSSS"} as Date {format: "yyyy-MM-dd"}
如果你只是需要输出字符串格式的日期,也可以直接对解析后的时间对象做格式化:
%dw 2.0 output application/json var timeStamp = "2021-11-11 00:32:47.5220000" --- timeStamp as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss.SSSSSSS"} format "yyyy-MM-dd"
补充说明常用日期格式符区分,避免后续踩坑:
yyyy:4位公历年MM:2位月份(大写,和分钟做区分)dd:2位当月日期HH:24小时制小时mm:2位分钟(小写)ss:秒S:秒的小数位,有几位就写几个S即可
内容的提问来源于stack exchange,提问作者Nadeem
相关产品推荐
相关产品推荐

