我正在開發一個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 代碼不會影響實例的序列化方式,因為您在將實例序列化為 .Time
Time
string
如果您能夠控制日期字段的序列化方式,則可以應用以下格式,這些格式應與您提供給 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");
- 1 回答
- 0 關注
- 121 瀏覽
添加回答
舉報
0/150
提交
取消