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

2024-04-26 03:28:01 发布

您现在位置: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

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

谢谢


Tags: 文本reurldatetimedate链接格式match
2条回答

我认为你所说的大数是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'

如果match变量在打印时看起来像['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

相关问题 更多 >