LoginSignup
1
0

More than 1 year has passed since last update.

【備忘録】Golangで日付の操作を実施する。

Posted at

日付の操作

main.go
package main

import (
	"fmt"
	"time"
)

func main() {
	n := time.Now()

	// fmt.Println(n.Format("2006-01-02 15:04:05"))
	year := n.Format("2006")
	month := n.Format("2006-01")
	day := n.Format("2006-01-02")
	hour := n.Format("2006-01-02 15")
	min := n.Format("2006-01-02 15:04")
	sec := n.Format("2006-01-02 15:04:05")
	fmt.Println("year: ", year)
	fmt.Println("month: ", month)
	fmt.Println("day: ", day)
	fmt.Println("hour: ", hour)
	fmt.Println("min: ", min)
	fmt.Println("sec: ", sec)
}
~/go/src/array_slice $ go run main.go
year:  2022
month:  2022-05
day:  2022-05-18
hour:  2022-05-18 20
~/go/src/array_slice $ go run main.go
year:  2022
month:  2022-05
day:  2022-05-18
hour:  2022-05-18 20
min:  2022-05-18 20:11
sec:  2022-05-18 20:11:21

コラム(Formatの日付はなんでも良いの??)

2006-01-02 15:04:05と指定しているが、何か意味があるの??
→あります。この値を変更すると値を正しく取得できなくなります。

試しに2007とし、年を取得してみます。

package main

import (
	"fmt"
	"time"
)

func main() {
	n := time.Now()
	year := n.Format("2007")
	fmt.Println("year: ", year)
}
~/go/src/array_slice $ go run main.go
year:  18007

なんか、バグっていますね。内部的に意味を持つ値なのでしょう。

ちなみに、2006-01-02 15:04:05はアメリカの日付表記にした場合、「1月2日 3時4分5秒 6年(2006年)」となるようです。単に「123456」で綺麗じゃんってだけの話みたいです。
へー、って感じですよね。別に覚える必要は特にないと思いますが、なんか面白いですね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0