猿问

去: time.Parse() 问题

我有以下代码:


timeLocal := "01/July/2015:18:12:25 +0900"

inFormat := "02/January/2006:15:04:05 -0700"

parsed, err := time.Parse(inFormat, timeLocal)

if err != nil {

    log.Fatal("Time format was not recognized!")

}

现在,解析工作正常。但是当我运行时:


fmt.Println(timeLocal)

fmt.Println(inFormat)

fmt.Println(parsed)

输出是:


01/July/2015:18:12:25 +0900

02/January/2006:15:04:05 -0700

2015-07-01 18:12:25 +0900 +0900

第二个应该在+0900那里吗?我在做什么蠢事?抱歉,这真是漫长的一天,我不知道我错过了什么。


哦,整个文件在这里:


package main


import (

    "fmt"

    "time"

    "log"

)


func main() {

    timeLocal := "01/July/2015:18:12:25 +0900"

    inFormat := "02/January/2006:15:04:05 -0700"

    parsed, err := time.Parse(inFormat, timeLocal)

    if err != nil {

        log.Fatal("Time format was not recognized!")

    }


    fmt.Println(timeLocal)

    fmt.Println(inFormat)

    fmt.Println(parsed)

}


慕妹3242003
浏览 205回答 2
2回答

慕桂英546537

Time.String使用的默认格式是这样的:2006-01-02 15:04:05.999999999 -0700 MST注意“MST”部分。由于您没有提供区域的名称,因此格式只是将其“命名”为与偏移量相同的名称,即“+0900”。如果您将其更改为“+0000”,您将看到这确实是一个时区名称:2015-07-01 18:12:25 +0000 UTC如果您不希望那样,只需使用单独的格式进行打印:myFmt := "2006-01-02 15:04:05.999999999 -0700"fmt.Println(parsed.Format(myFmt))
随时随地看视频慕课网APP

相关分类

Go
我要回答