python - 将 epoch/unix 时间转换为可读格式

标签 python time

在 python 中,如果我要做什么

import time
print(time.time()+40)

从现在开始它会给纪元/unix 时间 40 秒,但是,我该怎么做呢

import time
def difference(x):
    Time = time.time()+x
    difference = Time-time.time()
    return difference

现在,我一直很好用,直到你得到比 60 秒(一分钟)更高的数字,并且在像一年这样的大范围内会变得非常困惑,有没有一种方法可以把它变成分钟或小时, days,years 在一个简单的方法中,所以它可以返回这样的东西?

return "That time is %s years from now %s days %s hours %s minutes and %s seconds from now"

我可以想办法做到这一点,但我担心我这样做的方式会导致使用大量 if/else 和 divmod 的非常大的代码。提前致谢。

最佳答案

这几乎是我停止使用时间并开始使用 datetime 的地方。

from datetime import tzinfo, timedelta, datetime
now = datetime.utcnow()
later = now - timedelta(seconds=40)


>>> now
datetime.datetime(2013, 10, 7, 15, 9, 5, 903000)
>>> print now
2013-10-07 15:09:05.903000
>>> print later
2013-10-07 15:08:25.903000

所以现在您只需减去差值即可。

now = datetime.utcnow()
later = now + timedelta(weeks=78, minutes=85, seconds=128)
diff = later - now

不幸的是,日期时间不能将天数转换为月/年。我认为这是因为它必须计算闰年以及两个日期之间的月份。

>>> print diff
546 days, 1:27:08




额外信息:

如果您开始进入其他时区,它会变得有点复杂,因为您需要提供一个时区对象。这是一个简单的版本:

################################################################################
#Class definition for EST timezone since python doesn't have one
class EST(tzinfo):
    def utcoffset(self, dt):
        return timedelta(-5)

    def tzname(self, dt):
        return "EST"

    def dst(self, dt):
        return timedelta(0)

################################################################################
#Class definition for CST timezone since python doesn't have one
class CST(tzinfo):
    def utcoffset(self, dt):
        return timedelta(hours=-6)

    def tzname(self, dt):
        return "CST"

    def dst(self, dt):
        return timedelta(0)


nowcst = datetime.now(tz=CST())
nowest = now.replace(tzinfo(EST())

使用时区确实应该考虑夏令时。
*示例代码可以在 python 文档中找到 - http://docs.python.org/2/library/datetime.html#tzinfo-objects

关于python - 将 epoch/unix 时间转换为可读格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19227798/

相关文章:

java - Java中基于时间的计算

javascript - 用于时间跟踪的正则表达式验证

python - Apache Spark 读取 CSV 文件 - ClassNotFoundException

python - 如何使用字典键的范围?

MySQL 数据库中的 PHP 日期未按计划工作

php - 检查两次之间的时间

time - 跟踪时间的最佳程序(赛车)

python - 使用Python编程语言获取密码

python Pandas : sum item occurences in a string list by item substring

python - 如何在我的预订系统中写入我的 CSV 文件 [STUCK]