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

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

解析時(shí)間到字符串并返回

解析時(shí)間到字符串并返回

Go
SMILET 2022-05-18 15:49:20
我正在嘗試在 Go 中做一些在 Java 等語言中非常簡(jiǎn)單的事情我想將當(dāng)前時(shí)間解析為字符串,然后將其解析回時(shí)間。這是我嘗試過的代碼,但從這里可以看出它給出了意想不到的結(jié)果。我面臨兩個(gè)問題time.Now().String() 給出了錯(cuò)誤的日期如果我將時(shí)間轉(zhuǎn)換為字符串并將其轉(zhuǎn)換回時(shí)間,它會(huì)給出一個(gè)完全不同的日期。什么是正確(且簡(jiǎn)單)的方法?       p := fmt.PrintlnstartStr := time.Now().String()   //2009-11-10 23:00:00 +0000 UTC m=+0.000000001p(startStr)startTime, _ := time.Parse(    "2009-11-10 23:00:00 +0000 UTC m=+0.000000001",    startStr)p(startTime)             //0001-01-01 00:00:00 +0000 UTC
查看完整描述

3 回答

?
開滿天機(jī)

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

time.Now().String()僅用于調(diào)試(參見 參考資料go doc)。


您應(yīng)該改用time.Format().


例如:


    p := fmt.Println

    now := time.Now().Format(time.RFC3339)

    p(now)


    parsed, _ := time.Parse(time.RFC3339, now)

    p(parsed.Format(time.RFC3339))

產(chǎn)生:


2009-11-10T23:00:00Z

2009-11-10T23:00:00Z

您的其他擔(dān)憂time.Now().String() gives a wrong date可能是由于您運(yùn)行代碼的位置。例如,如果您在“The Go Playgounrd”中運(yùn)行,那么時(shí)間將不準(zhǔn)確。您應(yīng)該在自己的計(jì)算機(jī)上運(yùn)行它,并假設(shè)您的計(jì)算機(jī)有正確的時(shí)間,那么您應(yīng)該打印正確的時(shí)間。


查看完整回答
反對(duì) 回復(fù) 2022-05-18
?
小怪獸愛吃肉

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

與其他一些語言不同,Go 并不將 String() 視為事實(shí)上的編組方法——相反,它只是為了調(diào)試目的而打印出值。如果您使用正確的格式字符串,您可以從該格式解析回時(shí)間;但是,正確的格式字符串必須是 的確切時(shí)間Mon Jan 2 15:04:05 MST 2006,而不是任何時(shí)間;但是 String() 打印出來的格式?jīng)]有被 Time 包中的常量捕獲,所以它可能不值得做。


但是,相反,MarshalText 和 UnmarshalText 方法可能會(huì)更好地捕獲您嘗試做的事情:


startStr, _ := time.Now().MarshalText()

fmt.Println(string(startStr)) // 2009-11-10T23:00:00Z


startTime := new(time.Time)

startTime.UnmarshalText(startStr)


fmt.Println(startTime) // 2009-11-10 23:00:00 +0000 UTC


查看完整回答
反對(duì) 回復(fù) 2022-05-18
?
慕容708150

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

操場(chǎng)上的時(shí)間是固定的,總是圍棋公告的日期和時(shí)間。


https://github.com/golang/go/issues/10663


因此,要正確使用時(shí)間,您需要在本地運(yùn)行它。


關(guān)于將時(shí)間解析為字符串或返回,您必須傳遞時(shí)間字符串的格式:例如:


package main


import (

    "fmt"

    "time"

)


func main() {

    current := time.Now()

    fmt.Println("Init Time:", current.String())

    timeCustomFormatStr := current.Format("2006-01-02 15:04:05 -0700")

    fmt.Println("Custom format", timeCustomFormatStr)

    parsedTime, err := time.Parse("2006-01-02 15:04:05 -0700",timeCustomFormatStr)

    if err != nil {

        fmt.Println(err)

        return

    }

    fmt.Println("parsedTime From Custom:", parsedTime)


    timeFormatRFC3339 := current.Format(time.RFC3339)

    fmt.Println("RFC3339 format", timeFormatRFC3339)


    parsedTimeRFC3339, err := time.Parse(time.RFC3339,timeFormatRFC3339)

    if err != nil {

        fmt.Println(err)

        return

    }

    fmt.Println("parsedTime From Custom:", parsedTimeRFC3339)

}

參考:1 https://golang.org/pkg/time/#Time.Format


查看完整回答
反對(duì) 回復(fù) 2022-05-18
  • 3 回答
  • 0 關(guān)注
  • 131 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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