bwr*_*wrr 0 python algorithm datetime date-arithmetic python-datetime
我有两个以浮点格式存储的时间戳:
tms1 = 1479081600.0
tms2 = 1482105600.0
Run Code Online (Sandbox Code Playgroud)
计算差异后我得到
tms2 - tms1
3024000.0
Run Code Online (Sandbox Code Playgroud)
如何将 3024000 的时差显示为可读格式(以天、月或年为单位)?(使用在线unix时差计算器,答案是2016年11月14日至2016年12月19日之间的35天)
您可以使用(在importing之后datetime)
datetime.timedelta(seconds=3024000).days
Run Code Online (Sandbox Code Playgroud)
这是
35
Run Code Online (Sandbox Code Playgroud)
您应该使用timedelta,因为这是时间增量 - 时间差异,而不是绝对时间。timedelta还可以通过将 a 强制转换为字符串来获得完整的表示形式:
print(datetime.timedelta(seconds=3024000))
Run Code Online (Sandbox Code Playgroud)
给出输出:
35 days, 0:00:00
Run Code Online (Sandbox Code Playgroud)
请注意,您不需要任何在线计算器 -datetime附带电池。你可以这样做:
import datetime
date_format = "%d %b %Y"
start_date = datetime.datetime.strptime("14 Nov 2016", date_format)
end_date = datetime.datetime.strptime("19 Dec 2016", date_format)
print(start_date == datetime.datetime.fromtimestamp(1479081600))
print(start_date)
print(end_date.strftime("%d/%m/%Y"))
diff = end_date - start_date
print(diff)
print(diff.days)
Run Code Online (Sandbox Code Playgroud)
其输出:
True
2016-11-14 00:00:00
19/12/2016
35 days, 0:00:00
35
Run Code Online (Sandbox Code Playgroud)
请注意,diff这里与原始对象相同timedelta,但是从datetimes 动态创建的,而不是静态构造的。我还演示了这样一个事实:如果您愿意,您可以根据时间戳构建日期时间,并且我还冒昧地进行了演示strftime等来说明日期时间的强大功能。我强烈推荐这种datetime方法而不是算术方法,因为它更具可读性和可扩展性。
这个答案非常轻量级,这并不一定是坏事,因为通常您可能不需要比它提供的功能更多的功能,但timedelta例如,如果两天之间的时间少于 24 小时,则会四舍五入到 0 天。它也无法处理时区。如果您需要其中任何一个,请参阅传奇雷蒙德的精彩答案
| 归档时间: |
|
| 查看次数: |
1012 次 |
| 最近记录: |