【问题标题】:Datetime - set seconds to 00日期时间 - 将秒设置为 00
【发布时间】:2017-06-20 21:28:09
【问题描述】:

我的问题是,当我尝试将今天的日期时间设置为 00:00:00 时,我得到了一些奇怪的十进制数字作为秒数。为什么会发生这种情况,它是什么?我怎样才能摆脱那个小数呢?

这是我得到的:

2017-06-20 00:00:00.652698+00:00

这就是我想要实现的目标:

2017-06-20 00:00:00+00:00

代码

todays_date = timezone.now().replace(hour=0, minute=0, second=0)

print(todays_date)

【问题讨论】:

  • 也许您想改用timezone.now().date()
  • @MartijnPieters 不,我也需要时间,而 date() 只是创建一个没有时间的日期。无论如何,谢谢你的努力:)
  • 当然,但是datetime.combine(timezone.now().date(), time.min) 也可以给你 ;-)
  • 标题具有误导性

标签: python python-3.x datetime


【解决方案1】:

datetime.datetime 支持 微秒 精度。要截断小数秒,请将 microsecond=0 添加到您的 replace 调用中:

todays_date = timezone.now().replace(hour=0, minute=0, second=0, microsecond=0)
print(todays_date)

或者您可以使用date 方法将日期部分作为datetime.date 对象:

todays_date = timezone.now().date()
print(todays_date)

应该输出

2017-06-20

【讨论】:

  • 谢谢,这是一个解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2013-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多