我是个编程初学者,我想找到最简单的方法。我有一个信息,其中有一行显示它是在UTC时间更新的,现在我想写我的程序,询问信息是否在过去24小时内,然后再打印信息。我在Python3工作,谢谢
import datetime
import urllib.request
def findEarthquake(entry):
start= entry.find("<titile>") +7
end= entry.find("</title>")
eq= entry[start:end]
return eq
def findQuakeTime(entry):
start= entry.find("<p>") +3
end= entry.find("<br>") -3
time=entry[start:end]
return time
page= urllib.request.urlopen("http://earthquake.usgs.gov/eqcenter/catalogs/7day-M2.5.xml")
text= page.read().decode("utf8")
start= text.find("<entry>") +7
earthquakeList=[]
while start >= 0:
end= text.find("</entry>", start)
entry= text[start:end]
quake= findEarthquake(entry)
quakeTime= findQuakeTime(entry)
有两种可能的方法:
将信息中的每一行转换为本地时间,并与当前时间进行比较。
获取UTC格式的当前时间,并与信息中的元数据进行比较。在我看来,这个解决方案更干净,当显示多个项目时,它将表现得更好,因为只有一个转换是必要的。
除非您提供更多关于您的编程语言、平台和您正在使用的任何框架的信息,否则无法提供更详细的帮助。在
编辑:
既然我们知道您使用的是Python(而且您还应该提到它是Python-3,而不是当前的稳定版本),而且由于您的},下面是一个小脚本,用于测试给定日期是否在最近24小时内:
quakeTime
变量的形式似乎是{以及几个用例:
^{pr2}$看看美国地质勘探局提供的数据,他们似乎已经向你提供了这些信息。例如,在第一个条目中,我看到
<category label="Age" term="Past day"/>
,而最后一个条目是<category label="Age" term="Past week"/>
。在假设您信任此信息,您可以像提取标题和时间一样提取它:
然后可以根据年龄是否为
"Past day"
过滤数据。在更新:下面是如何手动检查日期。在
^{pr2}$注意,^{} 需要时区,因此您应该从}。在
findQuakeTime()
代码中删除{相关问题 更多 >
编程相关推荐