0Pricing
Go Academy · レッスン

時間と継続時間

時点と時間間隔を表します

「時間と継続時間」はCoddyKit上の無料Go Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはGo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Go Academyコースには全4レッスンが含まれています。

time パッケージ

Goのtimeパッケージは、時刻と時刻間の期間を表します。

  • time.Timeは特定の時点を表します。
  • time.Durationは時間の長さを表します。
package main

import (
    "fmt"
    "time"
)

func main() {
    var d time.Duration = 2 * time.Second
    fmt.Println(d)
}

現在時刻を取得する

time.Now()は現在の時点をtime.Timeとして返します。(正確な値はプログラムを実行した時刻によって異なります。)

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    fmt.Println(now.Year())
}

特定の時刻を作成する

time.Dateは、年、月、日、時、分、秒、ナノ秒、ロケーションという各要素から、正確な時点を作成します。

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    fmt.Println(t)
}

時刻の構成要素を読み取る

time.Timeには、Year、Month、Day、Hour、Weekdayなどのメソッドがあります。

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 0, 0, 0, 0, time.UTC)
    fmt.Println(t.Month(), t.Day(), t.Weekday())
}

Durationの定数

単位を表す定数に数値を掛けて、期間を作成します。使用できる定数にはtime.Hour、time.Minute、time.Second、time.Millisecondがあります。

package main

import (
    "fmt"
    "time"
)

func main() {
    d := 1*time.Hour + 30*time.Minute
    fmt.Println(d)
}

Durationを変換する

Seconds()、Minutes()、Hours()などのメソッドは、期間をその単位のfloat64として返します。

package main

import (
    "fmt"
    "time"
)

func main() {
    d := 90 * time.Minute
    fmt.Println(d.Hours())
    fmt.Println(d.Seconds())
}

時刻を加算する

t.Add(d)は、期間の分だけ移動した新しい時刻を返します。time.Timeは値型なので、元の値は変更されません。

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    later := t.Add(2 * time.Hour)
    fmt.Println(later.Hour())
}

暦の単位を加算する

t.AddDate(years, months, days)は、暦に基づく単位で時刻を移動し、月の日数やうるう年も正しく処理します。

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.January, 31, 0, 0, 0, 0, time.UTC)
    next := t.AddDate(0, 1, 0)
    fmt.Println(next.Month(), next.Day())
}

時刻間の差

t2.Sub(t1)は、2つの時刻の間のDurationを返します。結果が負の場合は、t2のほうが早い時刻であることを示します。

package main

import (
    "fmt"
    "time"
)

func main() {
    a := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    b := time.Date(2026, time.May, 30, 12, 0, 0, 0, time.UTC)
    fmt.Println(b.Sub(a))
}

時刻の比較

時点を比較するには、Before、After、Equalを使用します。==は内部のロケーションも比較するため、使用は避けてください。

package main

import (
    "fmt"
    "time"
)

func main() {
    a := time.Date(2026, 5, 30, 9, 0, 0, 0, time.UTC)
    b := time.Date(2026, 5, 30, 10, 0, 0, 0, time.UTC)
    fmt.Println(a.Before(b))
}

Unixタイムスタンプ

t.Unix()は、1970年1月1日からの経過秒数を返します。time.Unix(sec, 0)を使うと、time.Timeに戻せます。

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 0, 0, 0, 0, time.UTC)
    secs := t.Unix()
    fmt.Println(time.Unix(secs, 0).UTC().Year())
}

クイックチェック

t2.Sub(t1)は何を返しますか?

まとめ:時刻とDuration

時刻の基本的なモデルを学びました。

  • time.Timeは時点、time.Durationは期間を表します。
  • NowとDateで作成し、AddとAddDateでずらします。
  • Subで差を測定し、Before/Afterで比較します。
package main

import (
    "fmt"
    "time"
)

func main() {
    start := time.Date(2026, 5, 30, 8, 0, 0, 0, time.UTC)
    end := start.Add(45 * time.Minute)
    fmt.Println(end.Sub(start).Minutes(), "minutes")
}

よくある質問

「時間と継続時間」レッスンは無料ですか?

はい。「時間と継続時間」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Go Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Go Academyコースには全4レッスンが含まれています。

「時間と継続時間」で何を学びますか?

時点と時間間隔を表します ブラウザで直接実行するハンズオンコードでGo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Go Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのGo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「時間と継続時間」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このGo Academyレッスンでコードを書いて実行できますか?

はい。すべてのGo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 時間と継続時間
  2. 書式設定と解析
  3. タイマーとTicker
  4. タイムゾーン
← Go Academyに戻る