如何用golang解析这个奇怪的日期时间2018-10-22T2250? 我找不到日期布局
答案 0 :(得分:1)
您可以创建自己的自定义格式。在生产中,您还应该处理错误。
package main
import (
"fmt"
"time"
)
func main() {
timeString := "2018-10-22T2250"
timeFormat := "2006-01-02T1504"
t, _ := time.Parse(timeFormat, timeString)
fmt.Println(t)
}
这将返回UTC时间。您可能需要调整到其他时区,具体取决于您的来源。
//init the location
loc, _ := time.LoadLocation("Asia/Shanghai")
//localize the time
localTime := t.In(loc)
答案 1 :(得分:-2)
Go中有固定的日期格式布局选项 如您所见,格式为源代码here
LongMonth // "January"
Month // "Jan"
NumMonth // "1"
ZeroMonth // "01"
LongWeekDay // "Monday"
WeekDay // "Mon"
Day // "2"
UnderDay // "_2"
ZeroDay // "02"
Hour // "15"
Hour12 // "3"
ZeroHour12 // "03"
Minute // "4"
ZeroMinute // "04"
Second // "5"
ZeroSecond // "05"
LongYear // "2006"
Year // "06"
PM // "PM"
pm // "pm"
TZ // "MST"
ISO8601TZ // "Z0700" // prints Z for UTC
ISO8601SecondsTZ // "Z070000"
ISO8601ShortTZ // "Z07"
ISO8601ColonTZ // "Z07:00" // prints Z for UTC
ISO8601ColonSecondsTZ // "Z07:00:00"
NumTZ // "-0700" // always numeric
NumSecondsTz // "-070000"
NumShortTZ // "-07" // always numeric
NumColonTZ // "-07:00" // always numeric
NumColonSecondsTZ // "-07:00:00"
FracSecond0 // ".0", ".00", ... , trailing zeros included
FracSecond9 // ".9", ".99", ..., trailing zeros omitted
所以如果您需要创建格式来解析“ 2018-10-22T2250”
您需要使用“ 2006-01-02T1504”格式
,代码为:
package main
import (
"fmt"
"time"
)
func main() {
input := "2018-10-22T2250"
timeFormat := "2006-01-02T1504"
output, err := time.Parse(timeFormat, input)
if err != nil {
panic(err)
}
fmt.Println(output)
}