import "time"

時間の計測と表示機能を提供します。

パッケージファイル

format.go sleep.go tick.go time.go zoneinfo_unix.go zoneinfo_windows.go

定数

このパッケージには、Time.Formatで使用するためのレイアウトがあらかじめ用意されています。このレイアウトには次の「標準時」が使われます。

Mon Jan 2 15:04:05 MST 2006  (MST is GMT-0700)

この標準時はUnix時間1136243045です。(2006/01/02 03:04:05PM -0700となります) アンダースコア(_)はスペースを表し、それに続く数(日)が2桁のときは数字に置き換わります。これは固定幅のUnix時刻フォーマットと互換性があります。

数値によるタイムゾーンオフセットのフォーマットは、次のようになります。

-0700  ±hhmm
-07:00 ±hh:mm

UTCタイムゾーンでこのフォーマットの符号を「Z」に置き換えると、オフセットの代わりにZを使うISO 8601形式になり、次のようになります。

Z0700  Z or ±hhmm
Z07:00 Z or ±hh:mm
const (
    ANSIC    = "Mon Jan _2 15:04:05 2006"
    UnixDate = "Mon Jan _2 15:04:05 MST 2006"
    RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
    RFC822   = "02 Jan 06 1504 MST"
    // RFC822 with Zulu time.
    RFC822Z = "02 Jan 06 1504 -0700"
    RFC850  = "Monday, 02-Jan-06 15:04:05 MST"
    RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
    Kitchen = "3:04PM"
    RFC3339 = "2006-01-02T15:04:05Z07:00"
)

曜日

const (
    Sunday = iota
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
)

After関数

func After(ns int64) <-chan int64

Afterは、少なくともnsナノ秒待ったあとで、この関数から返されるチャネルに現在時刻を送信します。

Nanoseconds関数

func Nanoseconds() int64

Nanosecondsは、Unix標準時間である「1970/01/01 00:00:00 UTC」からの経過ナノ秒数を返します。

Seconds関数

func Seconds() int64

Secondsは、Unix標準時間である「1970/01/01 00:00:00 UTC」からの経過秒数を返します。

Sleep関数

func Sleep(ns int64) os.Error

Sleepは、少なくともnsナノ秒間、カレントのゴルーチンを停止します。いくつかのオペレーティングシステム上では、より高精度のスリープがsyscall.Nanosleepで提供される可能性があります。

Tick関数

func Tick(ns int64) <-chan int64

Tickは、NewTicker関数のコンビニエンスラッパーで時刻送信チャネルのアクセスだけを提供します。時刻送信を停止する必要がないときに役立ちます。

ParseError型

ParseErrorは、時刻文字列の解析時にエラーが起きた箇所を記録します。

type ParseError struct {
    Layout     string
    Value      string
    LayoutElem string
    ValueElem  string
    Message    string
}

(*ParseError) String関数

func (e *ParseError) String() string

Stringは、ParseErrorの文字列表現です。

Ticker型

Tickerは、時刻の刻みを配信する同期チャネルを内部に持ちます。

type Ticker struct {
    C <-chan int64 // 時刻の刻みが送信されるチャネル
    // contains unexported fields
}

NewTicker関数

func NewTicker(ns int64) *Ticker

NewTickerは、ナノ秒ごとにナノ秒単位の時刻を配信する同期チャネルを持った、新しいTickerを返します。
時刻配信が中断されたときは、それを取り戻すためにその間の時刻配信をスキップします。

(*Ticker) Stop関数

func (t *Ticker) Stop()

Stopはtickerを停止します。以降、時刻は配信されなくなります。

Time型

Timeは解析済み時刻値を格納する構造体です。

type Time struct {
    Year                 int64  // 2006 のときは、 2006
    Month, Day           int    // Jan-2 のときは、 1, 2
    Hour, Minute, Second int    // 15:04:05 のときは、 15, 4, 5.
    Weekday              int    // Sunday, Monday, ...
    ZoneOffset           int    // UTC(東)の秒数, 例: -7*60 (-0700のとき)
    Zone                 string // 例: "MST"
}

LocalTime関数

func LocalTime() *Time

LocalTimeは、現在時刻をローカルタイムゾーンの解析済み時刻値として返します。

Parse関数

func Parse(alayout, avalue string) (*Time, os.Error)

Parseは、書式化された文字列を解析し、それが表している時刻値を返します。layoutには標準時の文字列表現を指定することでフォーマットを定義し、これを使って時刻の解析をします。あらかじめ定義されているレイアウトANSIC、UnixDate、RFC3339なども標準時を表しています。

返される時刻構造体には、valueに存在している要素だけがセットされます。また入力文字列が矛盾した時間(例えば間違った曜日を持っている)を表しているときは、矛盾した値が返されます。大抵は、返された時間の要素の値は正しく、時は0..23、分は0..59、月の日は0..31となります。年は0000..9999の範囲内でなければなりません。

SecondsToLocalTime関数

func SecondsToLocalTime(sec int64) *Time

SecondsToLocalTime は、Unix標準時間である「1970/01/01 00:00:00 UTC」から、パラメータsecで指定した秒数経過した時刻をローカルタイムゾーンの解析済み時刻値で返します。

SecondsToUTC関数

func SecondsToUTC(sec int64) *Time

SecondsToUTC は、Unix標準時間である「1970/01/01 00:00:00 UTC」から、パラメータsecで指定した秒数経過した時刻をUTCタイムゾーンの解析済み時刻値で返します。

UTC関数

func UTC() *Time

UTCは、現在時刻をUTCタイムゾーンの解析済み時刻値で返します。

(*Time) Format関数

func (t *Time) Format(layout string) string

Formatは、時間値をlayoutでフォーマットした文字列表現を返します。layoutは標準時の表現を示すことによってフォーマットを定義し、これを使って時刻をフォーマットします。あらかじめ定義されているレイアウトANSIC、UnixDate、RFC3339なども標準時を表しています。

(*Time) Seconds関数

func (t *Time) Seconds() int64

Secondsは、解析済み時刻値の1970年1月1日からの経過秒数を返します。

(*Time) String関数

func (t *Time) String() string

Stringは、時刻をUnix形式で返します。

バグ

Windowsの実装では、今年の夏時間のルールが、過去および将来も常に当てはまるとみなしています。