Yahoo Finance中的Decipher日期序列号



我需要帮助解读此URL末尾的日期号:view-source:http://finance.yahoo.com/q/q/op?s = xom&amp&日期= 1434672000 - 它看起来不像是普罗普利亚的Gregorian序列号,但在Yahoo中指定了2015年6月19日。我的目标是编写一个Python代码段,该段将从我的yyyymmdd输入中创建有效的Yahoo日期编号,以便我可以为任何股票股票符号(不仅仅是XOM)生成有效的URL,并以Yyyymmdd表示的期权到期日期。谢谢!

这是一个Unix时间戳 - 自1970年1月1日以来的秒数。

>>> time.gmtime(1434672000)
time.struct_time(tm_year=2015, tm_mon=6, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=170, tm_isdst=0)

您可以使用datetime.fromtimestamp将时间戳转换为dateTime对象:

from datetime import  datetime
url="http://finance.yahoo.com/q/op?s=XOM&date=1434672000"
print(datetime.fromtimestamp(float(url.rsplit("=",1)[1])))
2015-06-19 01:00:00
print(datetime.fromtimestamp(float(url.rsplit("=",1)[1])).date())
2015-06-19

使用日期字符串使用Strptime创建时间戳来创建DateTime对象,然后调用.timestamp():

dte = "2015-06-19"
print(datetime.strptime(dte,"%Y-%m-%d").timestamp())

使用urllib.parse可能是提取日期的更好方法:

from datetime import  datetime
url="http://finance.yahoo.com/q/op?s=XOM&date=1434672000"
from urllib.parse import parse_qs
print(datetime.fromtimestamp(float(parse_qs(url)["date"][0])))

谢谢;现在,我知道如何使用时间戳(将其解密并创建它)双向采用。关于创建它,当我发现以下用于从ddmmmyyyy字符串创建时间戳的代码时,我发现了有关日历模块的信息(我在shell中测试了此代码):

#----------------- Create time stamp
import time
import datetime
import calendar
# oxdt stands for 'option expiration date'
oxdt_txt = '15may2015'
oxdt = datetime.datetime.strptime(oxdt_txt, '%d%b%Y')
print(oxdt_txt)
print(oxdt)
print(calendar.timegm(oxdt.utctimetuple()))
print()
oxdt_txt = '19jun2015'
oxdt = datetime.datetime.strptime(oxdt_txt, '%d%b%Y')
print(oxdt_txt)
print(oxdt)
print(calendar.timegm(oxdt.utctimetuple()))
#----------------- done

最新更新