In golang I have not found any way to convert 12 hour format string time to 24 hour format as below:
07:05:45PM to 19:05:45
I have tried below using layout
layout := "Mon Jan 2 15:04:05 -0700 MST 2006"
/*
* Write your code here.
*/
//layout := "3:04PM"
t,_ := time.Parse(layout,s)
fmt.Println(t)
Output is:
07:05:45PM
I have looked for answers similar to this but it is not helping everyone is using whole layout. I found answers in another language but not in go.
For example,
package main
import (
"fmt"
"time"
)
func main() {
layout1 := "03:04:05PM"
layout2 := "15:04:05"
t, err := time.Parse(layout1, "07:05:45PM")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(t.Format(layout1))
fmt.Println(t.Format(layout2))
}
Playground: https://play.golang.org/p/Ypn2-lEF_Zs
Output:
07:05:45PM
19:05:45
Reference: package time
The key is to understand the layout. The reference time layout Parse is:
Mon Jan 2 15:04:05 -0700 MST 2006
You need to rewrite this date to your format. You only need to include the elements to your need. So only the hour, minute, second and AM/PM is important. Reference time 15:04:05
should be written as 03:04:05PM
.
Just use the rewritten time as the layout parameter:
t, _ := time.Parse("03:04:05PM", "07:05:45PM")
fmt.Println(t.Format("15:04:05"))
Output:
19:05:45