Time in go: unix, readable date and back

Let's see how to handle time and date with Go. Go has a build in function for managing with time. You will see how to get the current unix time, how to force to 0 the seconds, how to parse the go time object to a readable date with year, month, day, minute, seconds. Finally you will learn how to go back to unix using the readable date.

Code to get the current unix timestamp in go

Here is the basic code to get the current time.

nowTime := time.Now()

Example: write a file with ioutil

package main

import (

func main() {
	//get current unix timestamp
	nowTime := time.Now()

	//round the time and set the seconds to zero
	roundedTime := time.Date(nowTime.Year(), nowTime.Month(), nowTime.Day(), nowTime.Hour(), nowTime.Minute(), 0, 0, nowTime.Location())

	//format the time to YYYY-MM-DD hh:mm
	readable := roundedTime.Format("2006-01-02 15:04")

	//let's convert back to unix
	if backToUnix, err := time.ParseInLocation("2006-01-02 15:04", readable, nowTime.Location()); err==nil{

    //add one day and format
    fmt.Println(roundedTime.Add(24*time.Hour).Format("2006-01-02 15:04"))


Format to a readable date, the codes

Long month: January
Short month: Jan
Numer of the month: 1
Numer of the month with zero: 01
Long week day: Monday
Week day: Mon
Day: 2
Day with zero: 02
Hour: 15
Hour 12: 3
Hour 12 with zero: 03
Minute: 4
Minute with zero: 04
Seconds: 5
Seconds with zero: 05
Year: 2006
Short year: 06
pm/am: PM or pm

Other articles