English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Basic tutorial of Golang

Control statements in Golang

Functions & Methods in Golang

Structs in Golang

Slices & Arrays in Golang

Strings (String) in Golang

Pointers in Golang

Interfaces in Golang

Concurrency in Golang

Exceptions (Error) in Golang

Miscellaneous topics in Golang

Go Language Time (Date and Time)

Go has good support for time operations. Unix epoch time is used as the reference for time operations.

We can use the Date method provided by the time package to construct time objects. This package includes methods such as year(), month(), day(), location(), and so on.

We can call these methods by using time objects.

Go Time Example

package main
import "fmt"
import "time"
func main() {
	p := fmt.Println
	present := time.Now()//The current time
	p(present)
	DOB := time.Date(1993, 02, 28, 9,04,39,213 ,time.Local)
	fmt.Println(DOB)
	fmt.Println(DOB.Year())
	fmt.Println(DOB.Month())
	fmt.Println(DOB.Day())
	fmt.Println(DOB.Hour())
	fmt.Println(DOB.Minute())
	fmt.Println(DOB.Second())
	fmt.Println(DOB.Nanosecond())
	fmt.Println(DOB.Location())
	fmt.Println(DOB.Weekday())
	fmt.Println(DOB.Before(present))
	fmt.Println(DOB.After(present))
	fmt.Println(DOB.Equal(present))
	diff := present.Sub(DOB)
	fmt.Println(diff)
	fmt.Println(diff.Hours())
	fmt.Println(diff.Minutes())
	fmt.Println(diff.Seconds())
	fmt.Println(diff.Nanoseconds())
	fmt.Println(DOB.Add(diff))
	fmt.Println(DOB.Add(-diff))
}

Output:

2017-10-04 17:10:13.474931994 +0530 IST m=+0.000334969
1993-02-28 09:04:39.000000213 +0530 IST
1993
February
28
9
4
39
213
Local
Sunday
true
false
false
215624h5m34.474931781s
215624.09290970326
1.2937445574582197e+07
7.762467344749318e+08
776246734474931781
2017-10-04 17:10:13.474931994 +0530 IST
1968-07-25 00:59:04.525068432 +0530 IST
Process finished with exit code 0

Go Time Example2

package main
import (
	"fmt"
	"time"
)
func main() {
	present := time.Now()
	fmt.Println("Today : ", present.Format("Mon, Jan 2, 2006 at 3:04pm")
	someTime := time.Date(2017, time.March, 30, 11, 30, 55, 123456, time.Local)
	// Use time.Equal() to compare time
	sameTime := someTime.Equal(present)
	fmt.Println("someTime equals to now ? : ", sameTime)
	//Calculate the time difference between today and before
	diff := present.Sub(someTime)
	//Convert the difference to days
	days := int(diff.Hours()) / 24)
	30th March 2017 was %d days ago 

}

Output:

Today : Wed, Oct 4, 2017 at 5:15pm
someTime equals to now ? : false
30th March 2017 was 188 days ago