[言語別TIME処理] Go言語で時間処理

time-2132452_1280
LINEで送る
Share on GREE
Share on LinkedIn

時間操作の要件

  1. 1900年からの秒数(UnixTime)
  2. sleep処理
  3. 1番からYmdHisの取得(曜日含む)
  4. YmdHisから1番の取得
  5. マイクロ秒の取得
  6. 本プログラムの経過秒数

ソース

実行

解説

1. sleep-time

int値ではエラーになるので、time.Duration(**)としなければいけない
ここの箇所

2. time.Sleep()はナノ秒処理

time.Secondを掛け合わせると良い

3. Month()が何故か文字列で返る

本来なら下記のように書くと、その月の数値が返ってほしいのに・・・

なんじゃこりゃ・・・・
この値に誰が喜んでいるのか非常に微妙!!
という事でint変換すると数値に返る・・・

これはこれで意味が分かりにくいが、とりあえず、Go言語の日付取得の際のセオリーのようだ。

4. 年月日などの数値からtime型にする方法

下記が構文
年 , 月 , 日 , 時 , 分 , 秒 , ナノ秒 , TimeZone

いくつか違和感がありますが、ナノ秒は0を入れる以外にあまりイメージできないので、正直指定する必要あるのか?と思うがこれは仕様と割り切り、
timezoneは、よく考えられている仕様と感心し、
またもや月の箇所は、新喜劇のオチのような書き方。
これも仕様と割り切りましょう。
※忘れないように!!!

5. マイクロ秒の求め方

これで下6桁を切り捨てて、下3桁を取得することで、マイクロ秒が取得できます。
正直9桁もいらんので、これで十分

参考サイト


time関連
http://ashitani.jp/golangtips/tips_time.html


sleep処理
http://qiita.com/ruiu/items/1ea0c72088ad8f2b841e


問題解決
http://imagawa.hatenadiary.jp/entry/2016/12/15/190000


ブラウザで実行
https://play.golang.org/


monthの文字列を数値で返す
http://otiai10.hatenablog.com/entry/2013/10/12/094632


Goで詰まった所、ググった所メモ
http://qiita.com/ysugimoto/items/62ac984c1d96ef3313f7


Golangで型情報を調べる
http://y0m0r.hateblo.jp/entry/20140413/1397397593


Go / golang time.Now().UnixNano() convert to milliseconds?
http://stackoverflow.com/questions/24122821/go-golang-time-now-unixnano-convert-to-milliseconds

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*