【Go学习笔记】时间和字符串转换(time)

func Parse(字符串转时间)

func Parse(layout, value string) (Time, error)

Parse解析一个格式化的时间字符串并返回它代表的时间。layout定义了时间格式,例如:

Mon Jan 2 15:04:05 -0700 MST 2006

自定义layout参数时必须采用这一规定时间,该时间具有各项取值皆不相等的特征,Parse方法通过解析各项取值来确定时间格式。

用法

可以转换成标准时间,也可以只保留部分时间项(例如年月日),具体根据layout调控。

t, _ := time.Parse("2006-01-02 15:04:05", "2022-08-08 08:08:08")

转换结果为:

2022-08-08 08:08:08 +0000 UTC

时间自动补全

  • 当时间格式有缺漏时,解析时会默认取0
  • 若该值不能取0(例如月份、日期),则默认取1
  • 时区默认设置为UTC

例如:

t, _ := time.Parse("3:04pm", "3:04pm")

转换结果为:

0000-01-01 15:04:00 +0000 UTC

匹配失败

如果时间格式不匹配或字符串不完整,都会造成匹配失败:

//时间格式不匹配
t, _ := time.Parse("2006-01-02 15:04:05", "2022-08-08 8:8:8")

注意,时间格式需要区分是否用0占位。

//字符串不完整
t, _ := time.Parse("2006-01-02 15:04:05", "2022-08-08")

匹配失败后的转换结果为Time零值:

0001-01-01 00:00:00 +0000 UTC

func (Time) Format(时间转字符串)

func (t Time) Format(layout string) string

Format根据layout指定的格式返回t代表的时间点的格式化文本表示。

用法

//新建时间
t := time.Date(2022, time.August, 8, 8, 8, 8, 0, time.UTC)

//转为字符串
str := t.Format("Jan 2, 2006 at 3:04pm (MST)")

转换结果为:

Aug 8, 2022 at 8:08am (UTC)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值