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型で扱うにはどうすれば良いか?
今回の例の場合はMarch
を3
と扱うにはどうすれば良いか?
これは簡単で、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型で扱える。
以上。