Go言語でMySQLのtimestamp型の日付変換をしてみる
Go言語でMySQLのtimestamp型の日付変換をしてみた。
package main import ( "fmt" "time" ) func main() { t, _ := time.Parse("2006-01-02 15:04:05.999999999 -0700 MST", "2016-08-15 01:15:57.065962927 +0900 JST") fmt.Println(t) fmt.Println(t.Format("2006-01-02T15:04:05Z07:00")) fmt.Println(t.Format("2006/01/02 15:04")) fmt.Println(t.Format("2006年01月02日 15時04分")) fmt.Println(t.Format("2006_01_02")) }
結果は以下、
2016-08-15 01:15:57.065962927 +0900 JST 2016-08-15T01:15:57+09:00 2016/08/15 01:15 2016年08月15日 01時15分 2016_08_15
time.Parseの第一引数には定数が用意されている。定数にない場合は、自分で定義をする必要がある。
たとえばこんな感じに使える。
fmt.Println(time.Now().Format(time.ANSIC)) //2016-08-15T01:35:48+09:00
定数の一覧
const ( ANSIC = "Mon Jan _2 15:04:05 2006" UnixDate = "Mon Jan _2 15:04:05 MST 2006" RubyDate = "Mon Jan 02 15:04:05 -0700 2006" RFC822 = "02 Jan 06 15:04 MST" RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone RFC850 = "Monday, 02-Jan-06 15:04:05 MST" RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST" RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone RFC3339 = "2006-01-02T15:04:05Z07:00" RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00" Kitchen = "3:04PM" // Handy time stamps. Stamp = "Jan _2 15:04:05" StampMilli = "Jan _2 15:04:05.000" StampMicro = "Jan _2 15:04:05.000000" StampNano = "Jan _2 15:04:05.000000000" )