Golangのtimeパッケージの詳細解説(1):time.Time

日常の開発プロセスでは、時間通りに動作するシナリオが頻繁に発生しますが、Golang の time パッケージを使用すると、時間に関連した操作を簡単に実装できます。次のいくつかの記事で time パッケージについて詳しく説明しますが、この記事ではまず、time パッケージ内の time.Time 構造体について説明します。

時間.時間

time.Time 型は、ナノ秒の精度で特定の時点を表すために使用されます。構造体の定義と対応するメソッドは次のとおりです。

type Time struct {
	wall uint64
	ext  int64
	loc *Location
}

さまざまな時点の属性を取得する方法

  • func (t Time) Date() (year int, month Month, day int)、日付(年、月、日)情報を取得します。
  • func (t Time) Year() int、年の情報を取得します。
  • func (t Time) YearDay() int、年間通算日 (1 ~ 365) を取得します。
  • func (t Time) Month() Month、月情報を取得し、Month 型を返します。
  • func (t Time) ISOWeek() (年、週 int)、年と週 (1 ~ 53) を ISO 8601 形式で返します。
  • func (t Time) Weekday() Weekday、Weekday 型を返します。
  • func (t Time) Day() int、月の番号(1~31)を取得します。
  • func (t Time) Clock() (時、分、秒 int)、時刻(時、分、秒)情報を取得します。
  • func (t Time) Hour() int、時間情報(0~23)を取得します。
  • func (t Time) Minute() int、分の情報(0~59)を取得します。
  • func (t Time) Second() int、秒情報(0~59)を取得します。
  • func (t Time) Nanosecond() int、ナノ秒情報(0~999999999)を取得します。
  • func (t Time) Unix() int64、タイムスタンプを秒単位で取得します。
  • func (t Time) UnixMilli() int64、タイムスタンプをミリ秒単位で取得します。
  • func (t Time) UnixMicro() int64、タイムスタンプをマイクロ秒単位で取得します。
  • func (t Time) UnixNano() int64、ナノ秒のタイムスタンプを取得します。
  • func (t Time) String() 文字列。「2006-01-02 15:04:05.999999999 -0700 MST」タイプの時刻形式を返します。
  • func (t Time) Location() *場所、タイムゾーン情報を取得します。

簡単な例を見てみましょう。

package main

import (
	"fmt"
	"time"
)

func main() {
	t := time.Now()
	fmt.Println(t.Date())
	fmt.Println(t.Year())
	fmt.Println(t.YearDay())
	fmt.Println(t.Month())
	fmt.Println(t.ISOWeek())
	fmt.Println(t.Weekday())
	fmt.Println(t.Day())
	fmt.Println(t.Clock())
	fmt.Println(t.Hour())
	fmt.Println(t.Minute())
	fmt.Println(t.Second())
	fmt.Println(t.Nanosecond())
	fmt.Println(t.Unix())
	fmt.Println(t.UnixMilli())
	fmt.Println(t.UnixMicro())
	fmt.Println(t.UnixNano())
  fmt.Println(t.String())
	fmt.Println(t.Location())
}

時間処理方法(比較・判定・分析)

  • func (t Time) Format(layout string) string、時間を指定された形式にフォーマットします。
  • func (t Time) Add(d Duration) 時間に指定された時間を加えます。
  • func (t Time) AddDate(years int, months int, days int) Time。指定された年、月、日が t に加算される時点を返します。
  • func (t Time) Sub(u Time) 継続時間。2 つの時点間の時間差を返します。
  • func (t Time) Truncate(d Duration) Time、指定された時間を切り捨てます。
  • func (t Time) Round(d Duration) Time。時間を指定された時間に丸めます。
  • func (t Time) Equal(u Time) bool、2 つの時点が等しいかどうかを判断します。
  • func (t Time) After(u Time) bool、時点 t が時点 u より後であるかどうかを判断します。
  • func (t Time) Before(u Time) bool、時点 t が時点 u より前であるかどうかを判断します。

他の方法については個別に説明しません。詳細については公式ドキュメントを参照してください。

おすすめ

転載: blog.csdn.net/luduoyuan/article/details/131949652