当前位置: 首页 > news >正文

Golang 中的 time 包详解(一):time.Time

在日常开发过程中,会频繁遇到对时间进行操作的场景,使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包,本文先讲解一下 time 包中的结构体 time.Time。

time.Time

time.Time 类型用来表示一个具体的时间点,可以精确到纳秒。结构体定义和对应的方法如下:

type Time struct {wall uint64ext  int64loc *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() (year, week int),返回 ISO 8601 格式的年份和第几周(1-53)。
  • func (t Time) Weekday() Weekday,返回的一个Weekday类型。
  • func (t Time) Day() int,获取月内第几数(1~31)。
  • func (t Time) Clock() (hour, min, sec 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() string,返回 "2006-01-02 15:04:05.999999999 -0700 MST" 类型的时间格式。
  • func (t Time) Location() *Location,获取时区信息。

看个简单的示例:

package mainimport ("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) Time,加上指定的时间。
  • func (t Time) AddDate(years int, months int, days int) Time,返回将给定的年、月和日数加到 t 上后所对应的时间点。
  • func (t Time) Sub(u Time) Duration,返回两个时间点之间的时间差。
  • func (t Time) Truncate(d Duration) Time,截断指定的时间。
  • func (t Time) Round(d Duration) Time,将时间四舍五入到指定的时间。
  • func (t Time) Equal(u Time) bool,判断两个时间点是否相等。
  • func (t Time) After(u Time) bool,判断 t 时间点是否在 u 时间点后面。
  • func (t Time) Before(u Time) bool,判断 t 时间点是否在 u 时间点前面。

其他方法就不一一说明了,可以参考官方文档详细查看。

http://www.lryc.cn/news/97049.html

相关文章:

  • CMU 15-445 -- Database Recovery - 18
  • HTTP Header定制,客户端使用Request,服务器端使用Response
  • Vue 3编写的父子组件示例,包括传递数据和调用父组件方法
  • [ 容器 ] Docker 的数据管理
  • 【环境配置】使用Docker搭建LAMP环境
  • MLIR (Multi-Level Intermediate Representation)
  • VR全景在酒店的发展状况如何?酒店该如何做营销?
  • Winform使用PictureBox控件显示图片并且自适应
  • HTML中的焦点管理
  • 如何区分接口测试和功能测试
  • limit分页查询
  • mysql null 值查询不出来问题
  • 面试之CurrentHashMap的底层原理
  • Error in onLoad hook: “ReferenceError: plus is not defined“ found in
  • ansible自动化运维(二)剧本、角色编写实战
  • 【Spring框架】@Resource注入以及与@Autowired的区别
  • FTP服务器的搭建和配置上传脚本
  • Ubuntu22.04上部署Lua开发环境
  • React的hooks---自定义hooks
  • Asp.Net 使用Log4Net (基础版)
  • STM32 互补PWM 带死区 HAL
  • 20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片
  • 使用Python实现产品图片自动化处理
  • 在CSDN学Golang云原生(git)
  • QT多线程编程基础
  • TRT4-trt-integrate - 3 使用onnxruntime进行onnx的模型推理过程
  • layui+drogon完成文件上传(简例)
  • 高精度地图服务引擎项目
  • PyTorch使用Transformer进行机器翻译
  • LoadRunner使用教程