Twitter在python中创建了转换epoch时间



我从推特上得到了这个日期:

created_at = "Wed Aug 29 17:12:58 +0000 2012"

我想用这样的东西把它转换成一个时间

time.mktime(created_at)

但我得到了这个错误:

TypeError: argument must be 9-item sequence, not str

我做错了什么?

您需要使用strptime将传入字符串转换为Python时间元组,然后才能对其执行任何操作。

此代码将获取输入字符串,将其转换为元组,然后使用time.mktime:将其转换成Unix epoch时间浮点

import time
created_at = "Wed Aug 29 17:12:58 +0000 2012"
print time.mktime(time.strptime(created_at,"%a %b %d %H:%M:%S +0000 %Y"))

如果太晚的话,我不这么认为,使用箭头包可以减少导入和大量代码

pip install arrow

然后:

>>> arrow.Arrow.strptime("Wed Aug 29 17:12:58 +0000 2012", "%a %b %d %H:%M:%S %z %Y")
<Arrow [2012-08-29T17:00:58+00:00]>
>>> arrow.Arrow.strptime("Wed Aug 29 17:12:58 +0000 2012", "%a %b %d %H:%M:%S %z %Y").timestamp
1346259658

阅读time.mktime 的文档

它需要struct_time,或者您也可以使用9元组来表示它。

所需条目为:

  1. 年份
  2. 月份
  3. 日期
  4. 小时
  5. 分钟
  6. 第二
  7. 一周中的某一天
  8. 一年中的某一天
  9. 夏令时

然而,这不是您需要的功能。您似乎想使用strptime

根据文件:

根据格式解析表示时间的字符串。返回值是gmtime()或localtime()返回的struct_time。>>>导入时间>>>time.strptime("00年11月30日","%d%b%y")time.struct_time(tm_year=2000,tm_mon=11,tm_mday=30,tm_hour=0,tm_min=0,tm_sec=0,tm_wday=3,tm_yday=335,tm_isdst=-1)

所以,你可以做:

time.strptime(created_at)

最新更新