Golang 字符串转time 类型

前言

由于数据库的类型为Data 类型,所以插入数据库的时候我先把前端传入的string类型的时间转为Time 再插入。

Go 提供了两种插入的方式,即time.Parsetime.ParseInLocation 。两种方式,他们的差异比较大。

在这里插入图片描述

可以看出两种方式转换后的时间 相差了 8个小时,这是因为时区的原因。

  • time.Parse 把时间字符串转为了Time,时区是UTC时区
  • time.ParseInLocation 可以根据时间字符串和指定的时区转化

而CST时区则是东八区(北京时间) 和 UTC(世界标准时间)相差8个小时

这个看情况去选定时区。

时区

整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。UTC与格林尼治平均时(GMT, Greenwich Mean Time)一样,都与英国伦敦的本地时相同。在本文中,UTC与GMT含义完全相同。
北京时区(CST)是东八区,领先UTC八个小时

使用

// 支持什么类型都可以自己加
var timeTemplates = []string{
	//"2006-01-02 15:04:05", //常规类型
	//"2006/01/02 15:04:05",
	"2006-01-02",
	//"2006/01/02",
}

func TimeStringToGoTime(tm string) time.Time {

	for i := range timeTemplates {
		t, err := time.ParseInLocation(timeTemplates[i], tm, time.Local)
		if nil == err && !t.IsZero() { return t }
	}
	return time.Time{}
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值