前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >扩展学习之时间戳趣谈

扩展学习之时间戳趣谈

作者头像
chimchim
发布2023-10-17 08:53:54
6100
发布2023-10-17 08:53:54
举报
文章被收录于专栏:chimchim要努力变强啊

一、介绍

时间戳:一份数据在特定时间点存在的可验证的数据。

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp),是从1970年1月1日(UTC/GMT的午夜)开始到现在所经过的秒数(格林威治时间1970年01月01日00时00分00秒、北京时间1970年01月01日08时00分00秒),不考虑闰秒

UNIX时间戳的 0 按照 ISO 8601 规范为 :1970-01-01T00:00:00Z.

一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。

最小值(秒):0                                    始于(北京时间):1970-01-01 08:00:00

纪元时间 ,都是基于格林威治标准时间的,即GMT时间。

标准时间应该是1970-01-01 00:00:00,中国处于东八区,所以时间会比标准时间早8小时

二、转换工具

UNIX 时间戳转换工具地址 :   https://c.runoob.com/front-end/852

三、获取Unix时间戳的指令

编程语言

指令

Java

System.currentTimeMillis() / 1000 [3]

JavaScript

Math.round(new Date().getTime()/1000) getTime()返回数值的单位是毫秒

Microsoft .NET / C#

epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000

MySQL

SELECT unix_timestamp(now())

Perl

time

PHP

time()

PostgreSQL

SELECT extract(epoch FROM now())

Golang

time.now().Unix()

Python

先 import time 然后 time.time() 返回1476929706.5320001 可以 int(time.time())

Ruby

获取Unix时间戳:Time.now 或 Time.new 显示Unix时间戳:Time.now.to_i

SQL Server

SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())

Unix /Linux/类UNIX/OS X

date +%s

VBScript / ASP

DateDiff("s", "01/01/1970 08:00:00", Now())

lua

os.time() 返回时间戳

FreeSWITCH

fs_cli > strepoch 或者: fs_cli > eval ${strepoch()} 或者: (在 freeswitch里面,获取linux系统的时间戳) fs_cli > system date +%s

其他操作系统 (如果Perl被安装在系统中)

命令行状态:perl -e "print time"

四、普通时间转Unix时间戳

编程语言

指令

Java

long epoch = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/01/1970 01:00:00");

JavaScript

var commonTime = new Date(Date.UTC(year, month - 1, day, hour, minute, second))

MySQL

SELECT unix_timestamp(time) 时间格式: YYYY-MM-DD HH:MM:SS 或 YYMMDD 或 YYYYMMDD

Perl

先 use Time::Local 然后 my $time = timelocal($sec, $min, $hour, $day, $month, $year);

PHP

mktime(hour, minute, second, day, month, year)

PostgreSQL

SELECT extract(epoch FROM date('YYYY-MM-DD HH:MM:SS'));

Python

先 import time 然后 int(time.mktime(time.strptime('YYYY-MM-DD HH:MM:SS', '%Y-%m-%d %H:%M:%S')))

Ruby

Time.local(year, month, day, hour, minute, second)

SQL Server

SELECT DATEDIFF(s, '1970-01-01 00:00:00', time)

Unix / Linux

date +%s -d"Jan 1, 1970 00:00:01"

VBScript / ASP

DateDiff("s", "01/01/1970 00:00:00", time)

五、扩展

闰秒

科学上有两种时间计量系统:基于地球自转的天文测量而得出的"世界时"和以原子振荡周期确定的"原子时""世界时"由于地球自转的不稳定(由地球物质分布不均匀和其它星球的摄动力等引起的)会带来时间的差异,"原子时"(一种较恒定的时制,由原子钟得出)则是相对恒定不变的。这两种时间尺度速率上的差异,一般来说一至二年会差大约1秒时间。

1971年国际计量大会通过决议:使用"协调世界时"来计量时间。当"协调世界时""世界时"之差超过0.9秒时,国际地球自转服务组织(IERS)就负责对"协调世界时"拨快或拨慢1秒,这就是闰秒

协调世界时(英:Coordinated Universal Time ,法:Temps Universel Coordonné),又称世界统一时间,世界标准时间,国际协调时间。英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。

协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、介绍
  • 二、转换工具
  • 三、获取Unix时间戳的指令
  • 四、普通时间转Unix时间戳
  • 五、扩展
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档