A string can be converted to a time in Golang using the Parse
function within the time
package.
time.Parse(format, dateString)
The Parse
function accepts the following parameters:
format
: The format in which the time (output) should be. For example DD-MM-YYYY
.dateString
: The string that needs to be converted to time.The Parse
function will return a Golang time object.
In the following code, we will convert a string to time using the Parse
function:
package mainimport ("fmt""time")func main() {dateString := "2021-11-22"date, error := time.Parse("2006-01-02", dateString)if error != nil {fmt.Println(error)return}fmt.Printf("Type of dateString: %T\n", dateString)fmt.Printf("Type of date: %T\n", date)fmt.Println()fmt.Printf("Value of dateString: %v\n", dateString)fmt.Printf("Value of date: %v", date)}
In lines 3-6
, we have imported the necessary packages.
Inside the main()
function, we have declared a string dateString
and initialized it with 2021-11-22
in line #9
.
In line #10
, we then converted the string to date using the time.Parse()
function by passing two parameters; the format
and the dateString
.
If there occurs some error while conversion, we output it on the console in line 13
.
If there are no errors, we output the type and value of dateString
and date
respectively on the console in line 17-21
.
We can use multiple predefined format constants e.g.,
package mainimport ("fmt""time")func main() {// using layout RFC1123parseTime, err := time.Parse(time.RFC1123, "Sun, 12 Dec 2021 12:23:00 UTC")if err != nil {panic(err)}fmt.Printf("The Parsed time is: %v\n", parseTime)fmt.Printf("The Formatted Parsed time is: %v", parseTime.Format("02, Jan 2006"))}
Line 10: parses the second argument using the RFC1123
layout and saves the corresponding time
object to variable parseTime
.
Line 15: formats the parsed date and time value using the layout specified by the Format() method and prints the result to the standard output