Go言語 – 12.日時に関する処理

2019/02/05Go言語Go言語,日付

記事内に広告が含まれています。

日時に関する処理

日付を扱うには次のパッケージをインポートする必要があります。

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 )

これで、差分が求められます。

以上が、日付処理の基本です。

システムトラストでは一緒に働いていただける仲間を募集中です。
記事内に広告が含まれています。
株式会社システムトラスト

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ