添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
不要命的茶叶  ·  android - With ...·  1 年前    · 


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']    #删除原时间列

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