Golang : Parse date string and convert to dd-mm-yyyy format
A reader enquired on how to use Golang to convert date string such as "28th nov 2016" or "nov 28 2016" to 28-11-2016
To accomplish this, we use the time.Parse
function with a given layout that matches the input date string into Golang's time.Time
type
The only thing that we need to watch out for is to sanitize the input date string from th
, nd
,st
and rd
Here you go!
package main
import (
"fmt"
"strings"
"time"
)
func main() {
// test 1
inputDate := "28 nov 2016"
layOut := "2 Jan 2006"
timeStamp, err := time.Parse(layOut, inputDate)
fmt.Println("Test 1 date : ", inputDate)
if err != nil {
fmt.Println(err)
} else {
year, month, day := timeStamp.Date()
fmt.Printf("Date : [%d]year : [%d]month : [%d]day \n", year, month, day)
// mm-dd-yyyy
fmt.Println("mm-dd-yyyy date format : ", timeStamp.Format("01-02-2006"))
}
// test 2
inputDate = "November 28th 2016"
fmt.Println("\n\nTest 2 date : ", inputDate)
// need to remove th, nd, st and rd from inputDate string
inputDate = strings.ToLower(inputDate)
inputDate = strings.Replace(inputDate, "th", "", -1)
inputDate = strings.Replace(inputDate, "nd", "", -1)
inputDate = strings.Replace(inputDate, "st", "", -1)
inputDate = strings.Replace(inputDate, "rd", "", -1)
layOut = "January 2 2006"
timeStamp, err = time.Parse(layOut, inputDate)
if err != nil {
fmt.Println(err)
} else {
year, month, day := timeStamp.Date()
fmt.Printf("Date : [%d]year : [%d]month : [%d]day \n", year, month, day)
// dd-mm-yyyy
fmt.Println("dd-mm-yyyy date format : ", timeStamp.Format("02-01-2006"))
}
}
Output:
Test 1 date : 28 nov 2016
Date : [2016]year : [11]month : [28]day
mm-dd-yyyy date format : 11-28-2016
Test 2 date : November 28th 2016
Date : [2016]year : [11]month : [28]day
dd-mm-yyyy date format : 28-11-2016
References:
See also : Golang : Convert date or time stamp from string to time.Time type
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+11.8k Golang : Human readable time elapsed format such as 5 days ago
+7.9k Golang : Format strings to SEO friendly URL example
+4.7k Javascript : Get operating system and browser information
+15.6k Golang : Linked list example
+5.7k Golang : Word limiter example
+4.6k Golang : Experimenting with the Rejang script
+23.3k Golang : How to read integer value from standard input ?
+10.5k Golang : 2 dimensional array example
+3.8k Python : Convert(cast) string to bytes example
+13.1k Golang : Missing Bazaar command
+16.5k Golang : Logging with logrus
+15.7k Golang : [json: cannot unmarshal object into Go value of type]