欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

编程中常见的时间格式 有大用

编程中常见的时间格式

时间格式

前端和后端时经常会遇到各种各样的时间格式,这些格式在编写程序的时候都需要去使用不同的处理方式,这里集中写一下。

先说一下各种不同的时间格式。

类型名格式说明
ISO 8601一般:2020-12-05T05:33:19Z 东八区:2004-05-03T17:30:08+08:00国际标准化组织的日期和时间的表示方法,这种格式是最常用的格式。
RFC28221992/02/12 12:23:22+0800符合rfc2822格式的时间
格林威治标准时间GMTFri Jul 20 2018 00:00:00 GMT+0800 (中国标准时间)格林威治的子午线作为划分地球东西两半球的经度零度,并作为时间的零点
世界协调时间UTCMon, 29 Apr 2019 09:52:21 GMT经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间,计算过程相当严谨精密
Unix时间戳以秒为单位:1607150827 以纳秒为单位:1607150827857990329是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。

一般来说 iso8601时间 和 Unix时间戳 会比较常用。

GO

Go获取时间

获取时间的方式通过time包。

 fmt.Println(time.Now(), time.Now().Unix(), time.Now().UnixNano())

结果分别是 iso8601时间 和两种格式的 Unix时间戳。

time.Now() 返回 time.Time 格式,这个格式就是iso8601标准。

2020-12-05 14:51:28.103017059 +0800 CST m=+0.000064327 1607151088 1607151088103017215

Go比较时间

Unix() 和 UnixNano() 函数返回的是 int64 的值,因此可以直接比较大小。

fmt.Prinln(time.Now().Unix() > time.Now().AddDate(0, -1, 0).Unix())

这里的 AddDate函数 的三个参数分别是 年月日 ,往后增加为正,往前为负。

如果是要更加精确加减,可以使用 Add函数 。

  now := time.Now()
	m, _ := time.ParseDuration("-1m")
	m1 := now.Add(m)
	fmt.Println(m1)
time.ParseDuration 可以使用的时间单位有:"ns", "us" (or "µs"), "ms", "s", "m", "h"

Go格式化输出

一种是获取,年月日分秒纳秒的值。

time.Now().Year()
time.Now().Month()
time.Now().Day()
time.Now().Minute()
time.Now().Second()
time.Now().Nanosecond()

还有种就是使用 Format ,注意其中的值是固定的。

fmt.Println(now.Format("2006-01-02 15:04:05"))
fmt.Println(now.Format("2006/01/02 15:04:05"))
fmt.Println(now.Format("2006/01/02"))//年月日
fmt.Println(now.Format("15:04:05"))//时分秒

Gostring转时间戳

stringTime := "2017-08-30 16:40:41"
loc, _ := time.LoadLocation("Local")
time, _ := time.ParseInLocation("2006-01-02 15:04:05", stringTime, loc)
fmt.Println(time.Unix())

js

获取时间

console.log(new Date())
console.log(new Date('2020-12-5'))

结果是`GMT时间`格式

Sat Dec 05 2020 15:21:57 GMT+0800 (中国标准时间)

比较时间

可以直接比较

console.log(new Date(2020,12,5)>new Date(2020,12,4))

结果是true

格式化输出

Date() 一样有 getDay,getMonth 函数来获取年月日秒等值

还可以使用 getTime() 来获取时间戳

转时间戳

console.log( Date.parse("2019-03-20 02:10:11".replace(/-/gi, "/")))

结果为 1553019011000

发布于 2020-12-05

来自 https://zhuanlan.zhihu.com/p/331748448


普通分类: