Last active
April 20, 2021 15:52
-
-
Save jftuga/5c72414fe0f3a5e3ed5539af51416ccc to your computer and use it in GitHub Desktop.
comparing go date/time libraries
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// compare_dt_libs.go | |
// comparing go date/time libraries | |
package main | |
import ( | |
"fmt" | |
"github.com/btubbs/datetime" | |
"github.com/jinzhu/now" | |
"github.com/nleeper/goment" | |
"time" | |
) | |
func datetimeExample() { | |
fmt.Println() | |
fmt.Println() | |
fmt.Println("github.com/btubbs/datetime") | |
fmt.Println("==========================") | |
a := "2013-02-08T13:35:26" | |
b := "2013-02-08 13:35:26" // invalid | |
c := "2017/12/18 23:30:46" // invalid | |
d := "2021-04-08" | |
a1,_ := datetime.Parse(a, time.Local) | |
b1,_ := datetime.Parse(b, time.Local) | |
c1,_ := datetime.Parse(c, time.Local) | |
d1,_ := datetime.Parse(d, time.Local) | |
fmt.Printf("%T [%s] %v\n", a1, a1, a1.IsZero()) | |
fmt.Printf("%T [%s] %v\n", b1, b1, b1.IsZero()) | |
fmt.Printf("%T [%s] %v\n", c1, c1, c1.IsZero()) | |
fmt.Printf("%T [%s] %v\n", d1, d1, d1.IsZero()) | |
} | |
func nowExample() { | |
fmt.Println() | |
fmt.Println() | |
fmt.Println("github.com/jinzhu/now") | |
fmt.Println("=====================") | |
a := "2013-02-08T13:35:26" // invalid | |
b := "2013-02-08 13:35:26" | |
c := "2017/12/18 23:30:46" | |
d := "2021-04-08" | |
var err error | |
var a1 time.Time | |
a1, err = now.Parse(a) | |
if err != nil { | |
fmt.Println("a1:", a, err) | |
} else { | |
fmt.Printf("a1 %T %s\n", a1, a1) | |
} | |
var b1 time.Time | |
b1, err = now.Parse(b) | |
if err != nil { | |
fmt.Println("b1:", b, err) | |
} else { | |
fmt.Printf("b1 %T %s\n", b1, b1) | |
} | |
var c1 time.Time | |
c1, err = now.Parse(c) | |
if err != nil { | |
fmt.Println("c1:", c, err) | |
} else { | |
fmt.Printf("c1 %T %s\n", c1, c1) | |
} | |
var d1 time.Time | |
d1, err = now.Parse(d) | |
if err != nil { | |
fmt.Println("d1:", d, err) | |
} else { | |
fmt.Printf("d1 %T %s\n", d1, d1) | |
} | |
} | |
func gomentExample1() { | |
fmt.Println() | |
fmt.Println() | |
fmt.Println("github.com/nleeper/goment Example 1") | |
fmt.Println("===================================") | |
g, _ := goment.New("2013-02-08 09:30:26") | |
fmt.Println(g.Format("LLLL")) | |
t := g.ToTime() | |
fmt.Printf("%T %v\n",t,t) | |
} | |
func gomentExample2() { | |
fmt.Println() | |
fmt.Println() | |
fmt.Println("github.com/nleeper/goment Example 2") | |
fmt.Println("===================================") | |
a := "2016-05-12T20:35:26" | |
b := "2016-05-12 20:35:26" | |
c := "2019/03/18 04:30:46" // invalid | |
d := "2021-03-11" | |
var err error | |
var a1 *goment.Goment | |
a1, err = goment.New(a) | |
if err != nil { | |
fmt.Println("a1:", a, err) | |
} else { | |
fmt.Printf("a1 %T %s\n", a1, a1.Format("LLLL")) | |
} | |
var b1 *goment.Goment | |
b1, err = goment.New(b) | |
if err != nil { | |
fmt.Println("b1:", b, err) | |
} else { | |
fmt.Printf("b1 %T %s\n", b1, b1.Format("LLLL")) | |
} | |
var c1 *goment.Goment | |
c1, err = goment.New(c) | |
if err != nil { | |
fmt.Println("c1:", c, err) | |
} else { | |
fmt.Printf("c1 %T %s\n", c1, c1.Format("LLLL")) | |
} | |
var d1 *goment.Goment | |
d1, err = goment.New(d) | |
if err != nil { | |
fmt.Println("d1:", d, err) | |
} else { | |
fmt.Printf("d1 %T %s\n", d1, d1.Format("LLLL")) | |
} | |
} | |
func main() { | |
datetimeExample() | |
nowExample() | |
gomentExample1() | |
gomentExample2() | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
github.com/btubbs/datetime | |
========================== | |
time.Time [2013-02-08 13:35:26 -0500 EST] false | |
time.Time [0001-01-01 00:00:00 +0000 UTC] true | |
time.Time [0001-01-01 00:00:00 +0000 UTC] true | |
time.Time [2021-04-08 00:00:00 -0400 EDT] false | |
github.com/jinzhu/now | |
===================== | |
a1: 2013-02-08T13:35:26 Can't parse string as time: 2013-02-08T13:35:26 | |
b1 time.Time 2013-02-08 13:35:26 -0500 EST | |
c1 time.Time 2017-12-18 23:30:46 -0500 EST | |
d1 time.Time 2021-04-08 00:00:00 -0400 EDT | |
github.com/nleeper/goment Example 1 | |
=================================== | |
Friday, February 8, 2013 9:30 AM | |
time.Time 2013-02-08 09:30:26 +0000 UTC | |
github.com/nleeper/goment Example 2 | |
=================================== | |
a1 *goment.Goment Thursday, May 12, 2016 8:35 PM | |
b1 *goment.Goment Thursday, May 12, 2016 8:35 PM | |
c1: 2019/03/18 04:30:46 Not a matching ISO-8601 date | |
d1 *goment.Goment Thursday, March 11, 2021 12:00 AM |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment