Python - Excel - Matlab 时间戳的相互转换

时间戳:通俗来讲是指一个能表示一份数据在某个特定时间点已经存在的、 完整的、 可验证的数据。

 

最常见,可读性最好的时间戳为字符串型时间戳,比如:

2018年05月16日 13点26分53秒

2018/05/16 13:26:53

 

但实际实际使用过程中,字符串时间戳存在较大的弊端,比如存储空间较大至少需要15个以上的字节,日期前后比较困难(比如A日期在B日期之前还是之后),计算相差时间较为困难(A、B日期之间相差多少秒)。基于以上,程序员通常使用浮点型数据表示时间戳(float32或float64),但是在不同软件中浮点型时间戳的计算并不相同,也就需要知道不同软件之间时间戳的相互转化。

 

这里以UTC时间为例,也就是我们的Windows系统时间是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。也即1970年01月01日00时00分00秒的浮点时间戳为00000.000秒。

 

从上面我们就可以看出浮点数字时间戳需要注意3点:

1、起始时间,即xxxx年xx月xx日 xx时xx分xx秒为0.000或1.0000等;

2、单位,即浮点数字中的1单表是1秒还是1小时还是1天;

3、时区,即全球24个时区,相邻时区相差1小时。

 

对于Python - Excel – Matlab 的浮点型时间戳对于以上3点我们做以下统计结果(其中Excel时间即代表Windows系统时间):

1、起始时间

       Python起始时间为1970-01-01 08:00:00,对应浮点时间为0.0

       Excel:起始时间为1900-01-01 00:00:00,对应浮点时间为1.0000

Matlab:起始时间为0000-01-00 00:00:00,对应浮点时间为0.0000

2、单位

       Python1代表1秒

 

Excel:1代表1天

Matlab:1代表1天

3、时区

       从第1、2点来看,仅Python的浮点时间戳和当地时区有关,北京时区为 东+8区,因此开始的0.00时间为08:00:00,而Excel和Matlab均使用0时区。

 

Python - Excel - Matlab 时间戳的相互转换

由于个人经常使用Python时间戳,因此在这里只给出Python – Excel和Python – Matlab时间戳的相互转换,其他转换可以同理推出。

  1. Python - Excel时间戳的相互转换:

Excel 和 Python的起始时间相差70年又8小时,且单位比例为 1天=86400秒,故:

       PyTime = (ExcelTime - 25569.3333333)*86400

       ExcelTime = PyTime /86400 + 25569.3333333

  1. Python - Matlab时间戳的相互转换:

 

Matlab 和 Python的起始时间相差1970年又8小时,且单位比例为 1天=86400秒,故:

MatTime = PyTime /86400 + 719529.333333333

PyTime = (MatTime - 719529.333333333)*86400

 

验证:

以2018/05/16 13:26:53 时间为例:

Python 时间戳为:1526448413.0

通过计算:

ExcelTime =  43236.560336

 

MatTime = 737196.5603356478

 

由于转换存在约等数据,故精度可以达到秒级相同,毫秒级可能存在误差。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值