Go言語 – 12.日時に関する処理
日時に関する処理
日付を扱うには次のパッケージをインポートする必要があります。
import “time"
現在日時の取得
tm := time.Now()
これで、日付が取得できます。
年月日時分秒は次の指定で取得できます。
年:tm.Year()
月:tm.Month()
日:tm.Day()
時:tm.Hour()
分:tm.Minute()
秒:tm.Second()
日付を扱う場合、好きなフォーマットで表示させたいものです。
ここで初めて、このフォーマットを見ると??になると思います。
通常 YMDでしているするのですが、Go言語では実際の数値を用いてフォーマットをかけます。
何が言いたいかというと。
「年」を表す時は、"2006″
「月」を表す時は、"01″
と、記載します。。
このフォーマットは次のサイトにパッケージ化されています。
URL:https://golang.org/src/time/format.go
下記にサンプルを書きます。
const layout = "2006-01-02 15:04:05" fmt.Println(tm.Format(layout)) // => "2019-03-06 07:53:54"
日付の計算
日付でよく行うことが、日付の計算です。
足し算、引き算は次のように記載します。
計算方法は、1秒加算、1時間加算という形で記載ます。
具体的に書きますと
1秒加算の場合
tm = tm.Add(time.Duration(1) * time.Second)
となります。
意味は次の通りです。
time.Durationはナノ秒を表します。
それに対して、time.Secondを掛けてやる事で、秒を表すことができます。
つまり、
time.Duration(1):1ナノ秒 × time.Second:秒 = 1秒
となります。
時間の場合は、× time.Hour
日付の場合は、× (24 * time.Hour) 残念ながら time.Dayは無いようです。
足し算、引き算は次の通りです。
足し算:.Add
引き算:.Add に 負の値を設定すればできます。
日付の差分
次に、よく使うのが日付同士の差でしょう。
差を求めるには次の方法で求めます。
tm1 := time.Now() // なにか処理を~ tm2 := time.Now() sa := tm2.Sub( tm1 ) fmt.Println( sa )
これで、差分が求められます。
以上が、日付処理の基本です。