frankegoesdown
frankegoesdown

Reputation: 1924

parse date in golang

Please help me to parse date like 2018-12-17 12:55:50 +0300 in golang

I'm trying with layout

layout := "2006-01-02 15:04:05 +0000"
dateString := "2018-12-17 12:55:50 +0300"
t, err := time.Parse(layout, dateString)
if err != nil {
    fmt.Println("Error while parsing date :", err)
}
fmt.Println(t.Format("2006-01-02 15:04:05"))

but compiler says Error while parsing date : parsing time "2018-12-17 12:55:50 +0300" as "2006-01-02 15:04:05 +0000": cannot parse "300" as " +0000"

Upvotes: 3

Views: 5401

Answers (1)

peterSO
peterSO

Reputation: 166578

Package time

import "time"

the [layout] reference time can be thought of as

01/02 03:04:05PM '06 -0700

Use -0700, not +0000.

For example,

package main

import (
    "fmt"
    "time"
)

func main() {
    layout := "2006-01-02 15:04:05 -0700"
    dateString := "2018-12-17 12:55:50 +0300"
    t, err := time.Parse(layout, dateString)
    if err != nil {
        fmt.Println("Error while parsing date :", err)
    }
    fmt.Println(t.Format("2006-01-02 15:04:05"))
}

Playground: https://play.golang.org/p/Xr8zaTjODgC

Output:

2018-12-17 12:55:50

Upvotes: 5

Related Questions