扩展学习之时间戳趣谈

目录

一、介绍

二、转换工具

三、获取Unix时间戳的指令

四、普通时间转Unix时间戳

五、扩展


一、介绍

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

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时间戳

编程语言

指令

Javalong epoch = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/01/1970 01:00:00");
JavaScriptvar commonTime = new Date(Date.UTC(year, month - 1, day, hour, minute, second))
MySQLSELECT unix_timestamp(time)
时间格式: YYYY-MM-DD HH:MM:SS 或 YYMMDD 或 YYYYMMDD
Perl先 use Time::Local 然后 my $time = timelocal($sec, $min, $hour, $day, $month, $year);
PHPmktime(hour, minute, second, day, month, year)
PostgreSQLSELECT 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')))
RubyTime.local(year, month, day, hour, minute, second)
SQL ServerSELECT DATEDIFF(s, '1970-01-01 00:00:00', time)
Unix / Linuxdate +%s -d"Jan 1, 1970 00:00:01"
VBScript / ASPDateDiff("s", "01/01/1970 00:00:00", time)

五、扩展

闰秒

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

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

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

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值