Python - Datetime的时间总是为零

1 投票
4 回答
1564 浏览
提问于 2025-04-16 19:31

我遇到了一个奇怪的小问题,跟日期时间有关。以下是我正在做的事情:

>>> from datetime import datetime, date
>>> t = date.timetuple(datetime.now())
>>> t
time.struct_time(tm_year=2011, tm_mon=6, tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=165, tm_isdst=-1)

tm_hour、tm_min 和 tm_sec 都是零。这是为什么呢?

4 个回答

1

我在我的控制台里试过这个,得到了以下结果:

from datetime import datetime, date

date.timetuple(datetime.now())
>>> time.struct_time(tm_year=2011, tm_mon=6, tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=165, tm_isdst=-1)
datetime.timetuple(datetime.now())
>>> time.struct_time(tm_year=2011, tm_mon=6, tm_mday=14, tm_hour=13, tm_min=23, tm_sec=34, tm_wday=1, tm_yday=165, tm_isdst=-1)
1
>>> from datetime import datetime
>>> datetime.timetuple(datetime.now())
time.struct_time(tm_year=2011, tm_mon=6, tm_mday=14, tm_hour=18, tm_min=25, tm_sec=20,  tm_wday=1, tm_yday=165, tm_isdst=-1)
>>> from datetime import date
>>> date.timetuple(datetime.now())
time.struct_time(tm_year=2011, tm_mon=6, tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=165, tm_isdst=-1)

这是我的结果。

5

这里的 t 是一个 date 类型的东西,所以它自然不包含任何时间信息。你需要用 datetime.timetuple(datetime.now()) 这个方法来填充这些时间字段。

撰写回答