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

推荐答案

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

time.Time

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

-- -------------------- ---- -------
------- ----

------ -
------
-------
-

---- ------ -
--- ------
---- -- ----------
--------------------- ----

--- ---------
------------- -- --------------- --- -- --- -- -- -- ---------
--------------------- -------------
-

time.Duration

time.Duration 用于表示一个时间间隔,通常以纳秒为单位。你可以使用 time.Secondtime.Minutetime.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.Secondtime.Minutetime.Hour 等常量来表示常见的时间间隔。

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

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

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

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

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

纠错
反馈