MuleSoft DataWeave日期格式化:添加带三位毫秒的Z后缀
问题:给DateTime字符串添加Z后缀(保留三位毫秒)
输入载荷
{"Date": "2025-09-09T18:03:06.830"}
期望输出
"2025-09-09T18:03:06.830Z"
失败的尝试
尝试1:
%dw 2.0 output application/json --- payload.Date as String {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZ"}
输出结果缺少Z后缀:
"2025-09-09T18:03:06.830"
尝试2:
%dw 2.0 output application/json --- payload.Date as String {format: "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"}
同样未成功添加Z后缀。
正确的DataWeave脚本
%dw 2.0 output application/json --- // 先将字符串转为DateTime类型,再转换到UTC时区,最后格式化输出带Z后缀 (payload.Date as DateTime) >> "UTC" as String {format: "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"}
或者利用时区格式化符X的简洁写法:
%dw 2.0 output application/json --- (payload.Date as DateTime) >> "UTC" as String {format: "yyyy-MM-dd'T'HH:mm:ss.SSSX"}
原因说明
原载荷中的Date是字符串类型,直接对字符串执行格式转换不会触发时区处理逻辑。必须先将字符串转换为DateTime类型,再指定时区为UTC,最后通过格式化规则添加Z后缀,才能得到符合要求的输出。
内容的提问来源于stack exchange,提问作者ndtorre
相关产品推荐
相关产品推荐

