python和Matlab里时间戳/字符串/datetime的转化

网上看了半天,没看到一个能够写的又明白又简练的,所以自己总结了一下:

1、python和Matlab的时间戳(timestamp)互相转化

先放结论,再做解释,在东八区:

y=(x-719529)*86400+3600*8

x为matlab的时间戳,y为python下的对应时间戳

"719529"为1970年1月1日距离公元0000年的天数,86400为一天的秒数,3600为一个小时的秒数,8表征时区位置,东时区为正,西时区为负

原因解释:

1)基本规则

matlab里面时间戳表示从公元0000年0时0分到现在的天数

而python里面的时间戳表示从公元1970年1月1日0时0分到现在的秒数

2)为什么要加上8小时

实际使用时还需要加上时区的变化,默认是UTC时间(协调世界时,Universal Time Coordinated)(UTC的本质强调的是比GMT(格林威治时间)更为精确的世界时间标准.它其实是个更精确的GMT.),

而GMT(格林威治时间)的概念,大家应该熟悉(初中地理),你需要跟当地时区做转换,中国处于东8时区即GMT+8,所以你算出的时间戳如果是基于中国时间的,那么要加上8*3600秒

那么问题又来了:

3)为什么会采用1970年1月1日作为时间戳起始点?

因为用32位来表示时间的最大间隔是68年,而最早出现的UNIX操作系统考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始时间),至于时间回归的现象随着64为操作系统的产生逐渐得到解决,因为用64位操作系统可以表示到约2930亿年。


2、Matlab里时间戳、字符串和datetime的转化

1)时间戳和字符串的相互转化

timestamp = datenum(date_str)

date_str = datestr(timestamp ,format)

比如:

datenum('1970-01-01') = 719529

datestr(719529,'yyyy-mm-dd') = '1970-01-01'

2)时间戳和datetime的相互转化

基本思路:时间戳-字符串-datetime

time = datetime(datestr(timestamp ))

需要注意的是字符串格式会影响结果的输出,比如:


3、python里时间戳、字符串和时间数组的转化

python里面的datetime又称为时间数组

在Python中,通常有这三种方式来表示时间:时间戳、格式化的时间字符串、元组(struct_time)

(1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。

(2)格式化的时间字符串(Format String): ‘1988-03-16’

(3)元组(struct_time) :struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等

a.时间戳-->struct_time,字符串

a= 1462091932.0000045

time.localtime()    #将当前时间转换为struct_time

time.localtime(a)    #将a转换为struct_time

time.gmtime(a)    #将时间转换为struct_time

time.ctime(a)    #将时间戳转换为时间字符串

也可以使用datetime库下的函数进行转换:

d=datetime.datetime.fromtimestamp(a)    #将a转换为struct_time

d:    datetime.datetime(2016, 5, 1, 16, 38, 52, 5)


b.struct_time-->字符串,时间戳

a = 1462091932.0000045

a =  time.localtime(a)

b = time.asctime(a)    #转换为字符串

time.strftime("%a %b %d %H:%M:%S %Y",a)    #转换为字符串

str1 = a.strftime("%Y-%m-%d %H:%M:%S")    #转换为字符串,格式不同

time.mktime(a)    #转换为时间戳,结果为秒级,如果想要得到毫秒级的需要乘1000


c.字符串-->struct_time,PS:字符串不能直接转换为时间戳,需要先转为struct_time

b = '2013-10-01 14:05:32'

c = time.strptime(b,'%Y-%m-%d %H:%M:%S')    #按照格式转换为9元组,具体符号含义可以查time.strptime函数:

https://www.runoob.com/python/att-time-strptime.html


d.实际演示

a = 1462099131.9999979

b = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(a))  

[output]    '2016-05-01 18:38:51'

pd.Timestamp(b)  

[output]    Timestamp('2016-05-01 18:38:51')


4、备忘

其实整理这篇文档的目的是在做策略的时候碰到了这样一个问题:我需要把matlab里面的数据放在python里面测试,时间列需要变成时间索引:

转化前

point_synfes=point_synfes.dropna(subset=['time'])   #去nan,避免后面time函数报错

point_synfes['time'] = (point_synfes['time'] -719529) *86400 +3600 *8    #matlab时间戳转化为python时间戳

temp_trian = [pd.Timestamp(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(i)))for iin point_synfes['time'].values]    #时间列转为需要的格式

point_synfes.index = temp_trian    #设置时间列为索引

del point_synfes['time']    #删除原时间列

# 转化过程会有一些改变副本的操作警告,不过我的目的只是测试,所以就没有进一步修改了

转化后
数据格式
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容