亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Jackson 無法反序列化從 Golang Api 設置的日期

Jackson 無法反序列化從 Golang Api 設置的日期

Go
千萬里不及你 2022-09-05 17:01:56
我正在開發一個Golang Micro-service,它使用基于Java的Cucumber測試BDD。架構中有一個日期變量,它被定義為:startDate *time.Time我將此值設置為:t := time.Now()startDate = &t當我通過Java程序運行BDD時,我得到這個錯誤:Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not deserialize value of type java.util.Date from String "2021-06-11T10:53:57.1124553+05:30": not a valid representation (error: Failed to parse Date value '2021-06-11T10:53:57.1124553+05:30': Unparseable date: "2021-06-11T10:53:57.1124553+05:30")在我的BDD測試中,我有:private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");ObjectMapper mapper = new ObjectMapper();mapper.setDateFormat(dateFormat);我對Golang相對較新,在處理約會時會遇到問題。到目前為止,我一直在嘗試:t := time.Now().Format(time.RFC3339)tt, _ := time.Parse(time.RFC3339, t)startDate = &tt我甚至嘗試了 ,但我無法找出問題。time.LoadLocation()
查看完整描述

1 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

您提供的 Go 代碼不會影響實例的序列化方式,因為您在將實例序列化為 .TimeTimestring

如果您能夠控制日期字段的序列化方式,則可以應用以下格式,這些格式應與您提供給 Jackson 的格式保持一致:ObjectMapper

now := time.Now()
formattedDate := now.Format("2006-01-02T15:04:05.000Z0700")

如果您無法控制日期在 Go 端的序列化方式,還可以在 Java 端調整日期格式。下面的示例假定 Go 使用了 該函數:time.RFC3339

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");


查看完整回答
反對 回復 2022-09-05
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號