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
+7.4k Golang : Ways to recover memory during run time.
+9.2k Golang : Validate IPv6 example
+4.4k Linux/MacOSX : How to symlink a file?
+7k Golang : Process json data with Jason package
+4.3k Golang : How to pass data between controllers with JSON Web Token
+9.8k Golang : How to profile or log time spend on execution?
+5.3k Swift : Get substring with rangeOfString() function example
+27.7k Golang : Connect to database (MySQL/MariaDB) server
+15.5k Golang : Generate universally unique identifier(UUID) example
+7.7k Android Studio : Rating bar example
+20.2k Golang : Saving private and public key to files
+14.2k Golang : Find commonalities in two slices or arrays example