将日期从DD-MON-YY转换为YYYYMMDD

时间:2017-11-23 07:01:47

标签: date go

在GoLang,我该如何将日期从DD-MON-YY转换为YYYYMMDD格式?

My input is: 9-Nov-17
Expected output is: 20171109

但是当我在下面做的时候:

t, err := time.Parse("20060102", "9-Nov-17")

Golang返回错误:

Error: parsing time "9-Nov-17" as "20060102": cannot parse "v-17" as "2006"

请帮忙。

2 个答案:

答案 0 :(得分:5)

您必须使用当前格式解析时间,然后使用Format函数将其格式化为预期格式

检查下面的答案

package main

import (
    "fmt"
    "time"
)

func main() {
    // Parse a time value from a string in dd-Mon-yy format.
    t, _ := time.Parse("2-Jan-06", "9-Nov-17")
    //Format and print time in yyyymmdd format
    fmt.Println(t.Format("20060102"))
}

在这里播放链接:goplayground

答案 1 :(得分:2)

layout中解析和格式化time时会出现名为go的内容。此布局将始终基于Mon Jan 2 15:04:05 -0700 MST 2006时间值进行格式化。例如,如果您输入2017 November 22,则布局应为2006 January 02

// example 1          -- layout ---      --- input -----
t, err := time.Parse("2006 January 02", "2017 November 22")
// example 2
t, err := time.Parse("02-01-2006", "22-11-2017")