golang怎么取某天零点时间戳

Python014

golang怎么取某天零点时间戳,第1张

the_time, err := time.ParseInLocation("2006-01-02", "2017-01-10", time.Local)

if err == nil {

   unix_time := the_time.Unix()

   fmt.Println(unix_time)

}

全球以英国伦敦格林威治作为零度经线的起点,每隔15经度为一个时区,15度经线为该时区的中央经线,共分为24个时区。由西向东每隔15经度增加一个时区,相反的,每向西15经度减少一个时区。中国所在时区为东8区。

当前时间 time.Now() 返回的是当地时区的时间:

CST可以代表如下四个不同的时区:

time.Now() 返回的 +0800 CST 表示的就是中国标准时间,与UTC时间有如下的转化:

Wall Clocks表示挂钟时间,存储的是自1970 年 1 月 1 日 0 时 0 分 0 秒以来的时间戳,当系统和授时服务器进行校准时间时间操作时,有可能造成这一秒是2018-1-1 00:00:00,而下一秒变成了2017-12-31 23:59:59的情况。

Monotonic Clocks,意思是单调时间的,所谓单调,就是只会不停的往前增长,不受校时操作的影响,这个时间是自进程启动以来的秒数。

time.Now() 返回的 m=+0.004002201 就是表示Monotonic Clocks

go语言中如果不设置指定的时区,通过 time.Now() 获取到的就是本地时区

设置时区有两种方式:

固定时区到东八区。但这种不是对程序的全局设置,每次获取时都需要固定时区

加载指定时区。但如果没有go环境使用这种方式就会加载失败,因为时区信息是放在go的安装包中的。

如果你用第二种方式加载时区,在打docker镜像时就需要进行时区相关的配置,配置文件如下:

参考文章:

https://zhuanlan.zhihu.com/p/47754783

https://blog.mimvp.com/article/11887.html

各种语言版本的时间戳

1.Swift NSDate().timeIntervalSince1970

2.Go int32(time.Now().Unix())

3.Java (int) (System.currentTimeMillis() / 1000)

4.JavaScript Math.round(new Date() / 1000)

5.Objective-C [[NSDate date] timeIntervalSince1970]

6.MySQL SELECT unix_timestamp(now())

7.SQLite SELECT strftime('%s', 'now')

8.Erlang calendar:datetime_to_gregorian_seconds(calendar:universal_time())-719528*24*3600.

9.PHP time()

10.Python time.time()

11.Ruby Time.now.to_i

12.Shell date +%s

时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数。它也被称为 Unix 时间戳(Unix Timestamp)。

Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。

Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。