【问题标题】:Not able to get datetime.time using datetime module in python3无法在 python3 中使用 datetime 模块获取 datetime.time
【发布时间】:2021-12-30 02:25:22
【问题描述】:

以下是使用日期时间模块的给定代码。

from datetime import datetime
from datetime import time 
tup = (22,34,56)
dt_obj = datetime.time(tup[0], tup[1], tup[2])

print(time(dt_obj))

我需要格式的输出 - datetime.time(22,34,56) 但它给了我以下错误。

dt_obj = datetime.time(tup[0], tup[1], tup[2]) 类型错误:描述符 'datetime.datetime' 对象的 'time' 不适用于 'int' 对象

当我用时间替换 datetime.time 时,它​​给了我时间输出,但不是我想要的输出格式。请帮我解决这个问题。

【问题讨论】:

  • 准确地说,datetime.time(22,34,56) 是一种数据类型(类 datetime.time 的实例),而不是一种格式。该对象的字符串表示具有一种格式,即 HH:MM:SS,因此当您使用print 时,会生成一个字符串“22:34:56”。

标签: python-3.x datetime time


【解决方案1】:

您已经导入了from datetime import time,所以只需使用time

from datetime import datetime
from datetime import time 
tup = (22,34,56)
dt_obj = time(tup[0], tup[1], tup[2])

现在dt_obj 是您想要的格式:

 datetime.time(22, 34, 56)

【讨论】:

  • 也可以简化为dt_obj = time(*tup)
  • @BioGeek 但是我上面代码的输出显示 - 22:34:56
  • @isilia 尝试print(repr(dt_obj)) 到对象表示(而不是对象的字符串表示)。
  • @MrFuppes - 是的 repr 函数可以完成这项工作。但是 BioGeek 提到的 datetime.time 不起作用并抛出错误“print(datetime.time(tup)) TypeError: descriptor 'time' for 'datetime.datetime' objects does not apply to a 'tuple' object”跨度>
猜你喜欢
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多