我正在尝试从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
请帮助我卡住了!除了打印它之外,它不能对它返回的列表做任何事情,这在当前格式中是无用的
由于
答案 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>...