第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

編組 time.Time 到 unix 時(shí)間戳

編組 time.Time 到 unix 時(shí)間戳

Go
HUH函數(shù) 2023-04-10 10:39:01
我有這樣的結(jié)構(gòu)type log struct {    [...]    Timestamp timestamp `json:"timestamp"`}我想將時(shí)間戳作為 unix 時(shí)間戳,而不是默認(rèn)情況下執(zhí)行的任何操作 ( 2018-09-21T19:31:03.291Z)我試過(guò)像這樣創(chuàng)建一個(gè)自定義類(lèi)型: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 = &timestamp{        time.Unix(i, 0),    }    return nil}can not unmarshal timestamp into *main.timestamp但是我在嘗試從數(shù)據(jù)庫(kù)中讀取時(shí)總是遇到錯(cuò)誤。for iter.Scan(&message.Text, &message.Timestamp) {    userlogResult.Messages = append(userlogResult.Messages, message)}if err := iter.Close(); err != nil {    log.Error(err)}它不能在這里解組時(shí)間戳。https://github.com/gocql/gocql/blob/799fb0373110eaa4e2e71dd32a9b5903f80dca8f/helpers.go#L30問(wèn)題是它不使用 Unmarshall 函數(shù)。編輯:我已經(jīng)回答了我自己的問(wèn)題。
查看完整描述

3 回答

?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊

在這里,當(dāng)分配&timestamp{..}給 t 時(shí),它正在更改指針,而不是它指向的值必須按如下方式更改


func (t *timestamp) UnmarshalJSON(data []byte) error {

? ? i, err := strconv.ParseInt(string(data[:]), 10, 64)

? ? if err != nil {

? ? ? ? return err

? ? }

? ? *t = timestamp{

? ? ? ? time.Unix(i, 0),

? ? }

? ? return nil

}

編輯

由于您在從數(shù)據(jù)庫(kù)讀取時(shí)未能解組,這不是因?yàn)?如果您使用的是 sql,則json.unmarshalling必須實(shí)施sql.Scanner


查看完整回答
反對(duì) 回復(fù) 2023-04-10
?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊

我認(rèn)為您的代碼還可以-除了解組中的代碼。您沒(méi)有在實(shí)際錯(cuò)誤所在的編組/解組位置顯示代碼。

我讓它在操場(chǎng)上工作。

而不是這個(gè)(它改變了指針)

t = &timestamp{

? time.Unix(i, 0),

}

更改值


t.Time = time.Unix(i,0)

使用結(jié)構(gòu)的主要功能


fmt.Println("First Log...")

l := log{Timestamp: timestamp{time.Now()}}

fmt.Println(l)


buf, err := json.Marshal(l)

if err != nil {

? ? panic(err)

}

fmt.Println("Marshalled to JSON...")

fmt.Printf("%s\n", buf)


var logCopy log

if err := json.Unmarshal(buf, &logCopy); err != nil {

? ? panic(err)

}

fmt.Println("UnMarshalled from JSON...")

fmt.Println(logCopy)


查看完整回答
反對(duì) 回復(fù) 2023-04-10
?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

好吧,在混淆了這里的很多人(抱歉)和我自己之后,我找到了解決方案。


對(duì) json 的編組現(xiàn)在只需要像這樣修復(fù) gocql 兼容性:


var ts time.Time

for iter.Scan(&message.Text, &ts) {

    message.Timestamp = timestamp{ts}


    userlogResult.Messages = append(userlogResult.Messages, message)

}


查看完整回答
反對(duì) 回復(fù) 2023-04-10
  • 3 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)