• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

 

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

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人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap