1 回答

TA貢獻1773條經(jīng)驗 獲得超3個贊
google.protobuf.Timestamp的底層類型是timestamppb.Timestamp。
文檔說明了 json 表示的格式:
JSON 映射
在 JSON 格式中,Timestamp 類型被編碼為RFC 3339格式的字符串。也就是說,格式為“{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z”,其中 {year} 始終使用四位數(shù)字表示,而 { month}、{day}、{hour}、{min} 和 {sec} 分別用零填充到兩位數(shù)。小數(shù)秒,最多可達 9 位(即分辨率高達 1 納秒),是可選的?!癦”后綴表示時區(qū)(“UTC”);時區(qū)是必需的。proto3 JSON 序列化程序在打印 Timestamp 類型時應始終使用 UTC(如“Z”所示),并且 proto3 JSON 解析器應該能夠同時接受 UTC 和其他時區(qū)(如偏移量所示)。
例如,“2017-01-15T01:30:15.01Z”對 2017 年 1 月 15 日 01:30 UTC 過去 15.01 秒進行編碼。
這也可以在您收到的錯誤消息中看到:
將“1590179525”解析為“2006-01-02T15:04:05.999999999Z07:00”:無法將“179525”解析為“-”
這是 Go 的標準時間解析,如Time.Parse中所述。
因此,您應該傳遞字符串,而不是傳遞自紀元以來的秒數(shù)字符串:
2020-05-22T20:32:05Z
上面的字符串是通過運行獲得的:
fmt.Println(time.Unix(1590179525, 0).Format(time.RFC3339))
- 1 回答
- 0 關注
- 177 瀏覽
添加回答
舉報