🤖
BigQueryでISO8601形式で出力して、Goでパースする
背景
BigQueryで計算した値をDynamoDBに格納し、Goを使ってDynamoDBから日付の値を取得して使いたい
BigQuery
Console
SELECT FORMAT_TIMESTAMP('%Y-%m-%dT%H:%M:%S%Ez', CURRENT_TIMESTAMP(),'Asia/Tokyo')
定義: FORMAT_TIMESTAMP(format_string, timestamp [, <time_zone>])
出力結果
2023-07-24T13:42:22+09:00
参考資料
%Ez TIMESTAMP
RFC 3339-compatible numeric time zone (+HH:MM or -HH:MM).
GO
関数
// ISO8601を文字列に変換する関数
func iso8601ToString(iso8601 string) string {
// ISO8601をtime.Time型に変換
t, _ := time.Parse(time.RFC3339, iso8601)
// time.Time型を文字列に変換
return t.Format("2006-01-02")
}
プリント
fmt.Println(iso8601ToString("2023-07-24T13:42:22+09:00"))
出力結果
2023-07-24
参考資料
Discussion