将日期时间向下舍入到前一小时

新手上路,请多包涵

如何将日期时间舍入到前一小时?例如:

 print datetime.now().replace(microsecond=0)
>> 2017-01-11 13:26:12.0

四舍五入到前一小时: 2017-01-11 12:00:00.0

原文由 DougKruger 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 377
2 个回答

如果您想 向下舍入到小时,您可以简单地将 microsecondsecondminute 替换为零:

 print(datetime.now().replace(microsecond=0, second=0, minute=0))


If you want to round down to the previous hour (as stated in the example 2017-01-11 13:26:12.0 to 2017-01-11 12:00:00.0 ), replace microsecond , second and minute 带零,然后减去一小时:

 from datetime import datetime, timedelta

print(datetime.now().replace(microsecond=0, second=0, minute=0) - timedelta(hours=1))

外壳中的示例:

 $ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import datetime, timedelta
>>> print(datetime.now().replace(microsecond=0, second=0, minute=0) - timedelta(hours=1))
2017-01-11 16:00:00

原文由 Willem Van Onsem 发布,翻译遵循 CC BY-SA 4.0 许可协议

from datetime import datetime, timedelta

n = datetime.now() - timedelta(hours=1)
new_date = datetime(year=n.year, month=n.month, day=n.day, hour=n.hour)

原文由 gipsy 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题