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

Python - Excel - Matlab 时间戳的相互转换时间戳 通俗来讲是指一个能表示一份数据在某个特定时间点已经存在的 完整的 可验证的数据 最常见 可读性最好的时间戳为字符串型时间戳 比如 2018 年 05 月 16 日 13 点 26 分 53 秒 2018 05 16 13 26 53 但实际实际使用过程中 字符串时间戳存在较大的弊端

大家好,我是讯享网,很高兴认识大家。

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

 

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

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.)*86400

       ExcelTime = PyTime /86400 + 25569.

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

 

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

MatTime = PyTime /86400 + .

PyTime = (MatTime - .)*86400

 

验证:

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

Python 时间戳为:.0

通过计算:

ExcelTime =  43236.

 

MatTime = .

 

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

小讯
上一篇 2025-02-27 17:21
下一篇 2025-02-18 16:54

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/17639.html