LoginSignup
0
0

More than 3 years have passed since last update.

Goで月(Month)をint型にしたい

Posted at

Goでは月を取得するとint型ではなく、Marchみたいな値が出力される。
JavaScriptでは月を取得すると、number型(Goでいうint型)になるので少し驚いたのでメモ。
(しかも、JSは0から始まるから厄介...)

そのまま月(Month)を取得しようとすると

package main

import (
    "fmt"
    "time"
)

func main()  {
    t := time.Now()
    month := t.Month()
    fmt.Printf("type=%T value=%v\n", month, month)
}
結果
type=time.Month value=March

結果として、time.Month型という型のMarchが返される。

月(Month)をint型にするには

これをint型で扱うにはどうすれば良いか?
今回の例の場合はMarch3と扱うにはどうすれば良いか?

これは簡単で、time.Now().Month()int()で「time.Month型 => int型」に型変換してあげればOK!

package main

import (
    "fmt"
    "time"
)

func main()  {
    t := time.Now()
    month := t.Month()
    // 型変換でint型へ
    monthToInt := int(month)
    fmt.Printf("type=%T value=%v\n", monthToInt, monthToInt)
}
結果
type=int value=3

これでMarchではなく3というint型で扱える。
以上。

0
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
0
0