Go 语言面试题
目录

Go 语言中 time.Time 和 time.Duration 的用法?

· 约 3 分钟读完 · 第 109 / 175 章

推荐答案

在 Go 语言中,time.Time 和 time.Duration 是两个常用的时间相关类型,分别用于表示时间和时间间隔。

time.Time

time.Time 用于表示一个具体的时间点。它包含了年、月、日、时、分、秒、纳秒等信息。你可以使用 time.Now() 获取当前时间,或者使用 time.Date() 创建一个特定的时间。

time.Duration

time.Duration 用于表示一个时间间隔,通常以纳秒为单位。你可以使用 time.Second、time.Minute、time.Hour 等常量来表示常见的时间间隔。

本题详细解读

time.Time

time.Time 是 Go 语言中用于表示时间点的结构体。它包含了年、月、日、时、分、秒、纳秒等信息。你可以通过 time.Now() 获取当前时间,或者通过 time.Date() 创建一个特定的时间。

  • time.Now():返回当前本地时间。
  • time.Date(year, month, day, hour, min, sec, nsec, loc):返回一个指定时间点的 time.Time 对象。

time.Time 还提供了许多方法,如 Add()、Sub()、Before()、After() 等,用于时间的加减、比较等操作。

time.Duration

time.Duration 是 Go 语言中用于表示时间间隔的类型,通常以纳秒为单位。你可以使用 time.Second、time.Minute、time.Hour 等常量来表示常见的时间间隔。

  • time.Second:表示 1 秒。
  • time.Minute:表示 1 分钟。
  • time.Hour:表示 1 小时。

time.Duration 支持加减乘除等操作,可以方便地进行时间间隔的计算。例如,2 * time.Hour + 30 * time.Minute 表示 2 小时 30 分钟。

time.Time 的 Sub() 方法可以计算两个时间点之间的间隔,返回一个 time.Duration 对象。

这段代码计算了从 start 到 end 的时间间隔,并输出结果。

通过 time.Time 和 time.Duration,你可以方便地处理时间和时间间隔的相关操作。