DataWeave报错:无法将字符串转为DateTime,求正确转换方法
字符串转DateTime问题解决方案
你的转换失败核心原因是格式字符串与输入字符串不匹配:输入的"2023-01-30T15:00:00+0100"没有毫秒段(.SSS),但你用的格式里硬加了这部分,导致解析报错。
正确的转换代码
用完全匹配输入结构的格式字符串即可:
StartDateTime: payload.planDate as DateTime {format: "yyyy-MM-dd'T'HH:mm:ssZ"}
格式说明
yyyy-MM-dd:对应日期部分2023-01-30'T':匹配固定分隔符THH:mm:ss:对应时间部分15:00:00Z:匹配时区偏移+0100(符合RFC 822标准的时区格式)
补充说明
- 输入带时区信息,所以用
DateTime类型是对的,别用LocalDateTime(后者不含时区,会丢失偏移信息)。 - 如果转换后需要输出原格式的字符串,直接再转一次就行:
StartDateTime as String {format: "yyyy-MM-dd'T'HH:mm:ssZ"}
内容的提问来源于stack exchange,提问作者Pedro
相关产品推荐
相关产品推荐

