我有这样的结构
type log struct {
[...]
Timestamp timestamp `json:"timestamp"`
}
我想将时间戳作为 unix 时间戳,而不是默认情况下执行的任何操作 ( 2018-09-21T19:31:03.291Z)
我试过像这样创建一个自定义类型:
type timestamp struct {
time.Time
}
func (t timestamp) MarshalJSON() ([]byte, error) {
return []byte(strconv.FormatInt(time.Time(t.Time).Unix(), 10)), nil
}
func (t *timestamp) UnmarshalJSON(data []byte) error {
i, err := strconv.ParseInt(string(data[:]), 10, 64)
if err != nil {
return err
}
t = ×tamp{
time.Unix(i, 0),
}
return nil
}
can not unmarshal timestamp into *main.timestamp但是我在尝试从数据库中读取时总是遇到错误。
for iter.Scan(&message.Text, &message.Timestamp) {
userlogResult.Messages = append(userlogResult.Messages, message)
}
if err := iter.Close(); err != nil {
log.Error(err)
}
它不能在这里解组时间戳。https://github.com/gocql/gocql/blob/799fb0373110eaa4e2e71dd32a9b5903f80dca8f/helpers.go#L30问题是它不使用 Unmarshall 函数。
编辑:我已经回答了我自己的问题。
大话西游666
PIPIONE
繁花不似锦
相关分类