我从epoch开始使用日期,并且已经有了,例如:
date = 6928727.56235
Run Code Online (Sandbox Code Playgroud)
我想将其转换为另一种相对格式,以便我能够将其转换为相对于纪元的内容.
使用time.gmtime(date),它返回
year=1970, mon=3, day=22, hour=4, min=38, sec=47
Run Code Online (Sandbox Code Playgroud)
我认为epoch开始于'01/01/1970 00:00:00',所以该方法应该返回相对日期,例如:
'2 months 21 days 04:38:47'
Run Code Online (Sandbox Code Playgroud)
有什么帮助吗?
该方法应以如下方式返回相对日期:“ 2个月22天04:38:47”
您不能这样做,因为一个月的长度在28到31天之间。声明“ 2个月22天”可能意味着81到84天之间的任何时间。(或者,如果不必连续几个月,则在78到84天之间)。
因此,您想要的只是荒谬的。相对日期时间只能以天,小时和秒为单位进行计数,直到相差变得如此之大以至于天数不再重要为止,在这种情况下,您可以开始以月或年为单位进行计数(但是您不能包括天数)不再)。
因此,您可以说“五年零两个月”或“ 80天零三个小时”或“两百年”。但是您不能说“两个月零三天”或“五年零二十天”。这些说法完全没有道理。
因此,正确的答案的确是eumiros
timedelta(seconds=6928727.56235)
Run Code Online (Sandbox Code Playgroud)
但是现在你也知道为什么了。
(当然,除非你每月实际平均月亮周期,这样做有一个固定长度。:))
from datetime import timedelta
a = timedelta(seconds=6928727.56235)
# a is now datetime.timedelta(80, 16727, 562350)
print "%d days %02d:%02d:%02d" % (a.days, a.seconds / 3600, (a.seconds / 60) % 60, a.seconds % 60)
Run Code Online (Sandbox Code Playgroud)
返回80 days 04:38:47,这是正确的,但不完全是OP想要的(80天而不是2个月21天)。
| 归档时间: |
|
| 查看次数: |
4489 次 |
| 最近记录: |