Go

【Go】日付形式の扱い

日付をパースできるようです。

タイムゾーンがデフォルトでUTCになるのでロケーションを指定します。

正常

package main

import (
	"fmt"
	"time"
)

func main() {

	// 想定する日付形式
	f := "2006-01-02 15:04:05"

	// チェックする日付
	target := "2002-03-30 12:12:12"

	// タイムゾーンを指定する
	jst, _ := time.LoadLocation("Asia/Tokyo")

	// 時間をパースする
	t, e := time.ParseInLocation(f, target, jst)
	if e != nil {
		fmt.Println(e)
	}
	fmt.Println(t) // 2002-03-30 12:12:12 +0900 JST
}

失敗

package main

import (
	"fmt"
	"time"
)

func main() {

	// 想定する日付形式
	f := "2006-01-02T15:04:05Z07:00"

	// チェックする日付
	target := "2002-03-30 12:12:12"

	// タイムゾーンを指定する
	jst, _ := time.LoadLocation("Asia/Tokyo")

	// 時間をパースする
	t, e := time.ParseInLocation(f, target, jst)
	if e != nil {
		fmt.Println(e) // parsing time "2002-03-30 12:12:12" as "2006-01-02T15:04:05Z07:00": cannot parse " 12:12:12" as "T"
	}
	fmt.Println(t) // 0001-01-01 00:00:00 +0000 UTC
}

コメントを残す

メールアドレスが公開されることはありません。

© DeNnie.Lab All Rights Reserved.