10位时间戳转换日期公式
时间戳TimeStamp是时间序列中的最基本的数据类型,Pandas可以将整型或浮点型表示的时间转换为时间戳。程序如下:
import pandas as pd
print(pd.Timestamp(1303608600))
得到结果为:
2011-04-24 09:30:00
其中的转换原理如下:
t = 1303608600
day = np.floor(t/60/60/24)
h = np.floor(t/3600)-day*24
m = np.floor(t/60)-day*24*60-h*60
print(day,h,m)
得到天数、时、分如下:
15088.0 1.0 30.0
通过时间戳转换我们得到1303608600可转换为2011-04-24 09:30:00
目前只有m:30能对应上。
h为1而我们转换到的结果为9,这是因为中国的时区为UTC+8,UTC是一个世界统一的时间,以原子时为基础,其他时区的时间都是在这个基础上增加或减少的。
day为15088,而转换到的年份为2011,这是通过计算1970年1月1日往后的15088天得到的结果。之所以是1970年1月1日作为起始日期,是因为很多编程语言起源于UNIX系统,而UNIX系统认为1970年1月1日0点是时间纪元。
综上,我们可以理解10位时间戳转换得到的日期为2011-04-24的原理。