日付の操作
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」で綺麗じゃんってだけの話みたいです。
へー、って感じですよね。別に覚える必要は特にないと思いますが、なんか面白いですね。