我在Python中有一个表示unix时间戳(即"1284101485")的字符串,我想将其转换为可读日期 . 当我使用 time.strftime
时,我得到 TypeError
:
>>>import time
>>>print time.strftime("%B %d %Y", "1284101485")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument must be 9-item sequence, not str
14 回答
我刚成功使用:
从时间戳开始随时间获取可读日期,您也可以更改日期格式 .
使用
datetime
模块:取自http://seehuhn.de/pages/pdate
您可以使用easy_date轻松实现:
你可以像这样转换当前时间
将字符串中的日期转换为不同的格式 .
投票最多的回答建议使用fromtimestamp,因为它使用本地时区,因此很容易出错 . 为了避免问题,更好的方法是使用UTC:
posix_time是您要转换的Posix纪元时间
除了使用 time/datetime 包之外, pandas 也可以用来解决同样的问题 . 这就是我们如何使用 pandas 将 timestamp 转换为 readable date :
时间戳可以采用两种格式:
快速和脏的一个班轮:
'2013-5-5-1-9-43'
有一种有趣的方式,您不必担心时区,utc等 . 只需将字符串转换为Excel日期格式,然后转换为可读的日期/时间:
对于来自UNIX时间戳的人类可读时间戳,我之前在脚本中使用过此:
输出:
'2012年12月26日'
有两个部分:
将unix时间戳("seconds since epoch")转换为本地时间
以所需格式显示当地时间 .
即使本地时区过去具有不同的utc偏移并且python无法访问tz数据库,也可以使用
pytz
时区获取本地时间的便携方式:要显示它,您可以使用系统支持的任何时间格式,例如:
如果您不需要当地时间,则可以获得可读的UTC时间:
如果您不关心可能影响返回日期的时区问题,或者python是否可以访问系统上的tz数据库:
在Python 3上,您可以仅使用stdlib获取时区感知日期时间(如果python无法访问系统上的tz数据库,例如在Windows上,则UTC偏移可能是错误的):
time
模块中的函数是相应C API周围的瘦包装器,因此它们可能比相应的datetime
方法更不便携,否则您也可以使用它们: