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.6k Swift : Convert (cast) String to Double
+6.7k Golang : constant 20013 overflows byte error message
+9.4k Golang : Qt get screen resolution and display on center example
+6.6k Golang : Muxing with Martini example
+9.9k Golang : Print how to use flag for your application example
+13.5k Golang : Convert spaces to tabs and back to spaces example
+9.6k Golang : Sort and reverse sort a slice of integers
+21.8k Golang : How to run Golang application such as web server in the background or as daemon?
+13.1k Golang : error parsing regexp: invalid or unsupported Perl syntax
+9.5k Golang : Resumable upload to Google Drive(RESTful) example
+11k Golang : How to use if, eq and print properly in html template
+4.1k Javascript : How to show different content with noscript?