从字符串获取Unix日期(数字)并转换为Python日期

时间:2015-11-22 13:21:58

标签: python

我正在尝试从url链接上返回的相当大的文本体中提取unix日期,所以我使用过:

link = Open_URL(url)
match=re.compile('"Date":"(.+?)"').findall(link)

但是当我打印unix日期时,它是一个很大的数字而不是一个日期,我需要将它转换为可用的日期格式,我试过:

datetime.fromtimestamp(int(my)ints)).strftime('%Y-%m-%d %H:%M:%S')

但它不允许我转换链接,任何想法?

提前致谢

当前代码:

link = Open_URL(url)
match=re.compile('"End Date":"(.+?)"').findall(link)
for url in match:
   So on

请帮助我卡住了!除了打印它之外,它不能对它返回的列表做任何事情,这在当前格式中是无用的

由于

2 个答案:

答案 0 :(得分:0)

我认为大数字的含义是UNIX time stamp,也称为time since epoch。它可以很容易地在python中转换为datetime对象,如下所示:

import datetime

a = datetime.datetime.timestamp(datetime.datetime.now())
print(a)   # 1448206588.806814

b = datetime.datetime.fromtimestamp(a)
print(b)   # datetime.datetime(2015, 11, 22, 21, 7, 8, 661906)

# using strftime on above object
print(b.strftime('%Y-%m-%d %H:%M:%S'))    #'2015-11-22 21:07:08'

答案 1 :(得分:0)

如果您的['1448204858']变量在打印时看起来像datetime.fromtimestamp(),则它是一个包含单个字符串元素的列表float需要import re from datetime import datetime # test data link = '"Something":"foo","Date":"1448204858","Otherthing":"bar"' match=re.compile('"Date":"(.+?)"').findall(link) dt = datetime.fromtimestamp(float(match[0])) print(repr(dt)) print(dt.strftime('%Y-%m-%d %H:%M:%S')) 值,因此您需要

  • 从列表中提取字符串
  • 将其转换为浮点数,然后
  • 将其转换为日期时间:
datetime.datetime(2015, 11, 22, 8, 7, 38)
2015-11-22 08:07:38

结果:

<select multiple>...