datetime.time基本日期和时间类型的time对象详解(24)Python语言(必读进阶学习教程)(参考资料)
时间对象表示一天中的(本地)时间,与任何特定日期无关,并且可以通过tzinfo
对象进行调整。
- class
datetime.
time
(小时= 0,分钟= 0,秒= 0,微秒= 0,tzinfo =无,*,折叠= 0 ) - 所有参数都是可选的。 tzinfo可以是
None
,或者是tzinfo
子类的实例 。其余参数可以是整数,在以下范围内:0 <= hour < 24
,0 <= minute < 60
,0 <= second < 60
,0 <= microsecond < 1000000
,fold in [0, 1]
。
如果给出了超出这些范围的参数,
ValueError
则引发。所有默认0
除外tzinfo,默认为None
。
类属性:
time.
min
- 最早的代表
time
,。time(0, 0, 0, 0)
time.
max
- 最新的代表
time
,。time(23, 59, 59, 999999)
time.
resolution
- 尽管注意不支持对象上的算术运算,但是 非等
time
对象 之间可能存在最小差异。timedelta(microseconds=1)
time
实例属性(只读):
time.
hour
- 在
range(24)
。
time.
minute
- 在
range(60)
。
time.
second
- 在
range(60)
。
time.
microsecond
- 在
range(1000000)
。
time.
tzinfo
- 该对象作为tzinfo参数传递给
time
构造函数,或者None
如果没有传递。
time.
fold
- 在。用于在重复间隔期间消除墙壁时间的歧义。(当在夏令时结束时或当前区域的UTC偏移因政治原因而减少时,会发生重复间隔。)值0(1)表示两个时刻的早期(稍后)相同的墙时间表示。
[0, 1]
版本3.6中的新功能。
支持的操作:
-
的比较
time
来time
,其中一个被认为是小于b当一先b中的时间。如果一个比较天真且另一个比较清楚,TypeError
则在尝试进行订单比较时会引发比较。对于相等比较,天真实例永远不等于意识实例。如果两个比较都知道并具有相同的
tzinfo
属性,tzinfo
则忽略common 属性并比较基本时间。如果两个比较都知道并且具有不同的tzinfo
属性,则首先通过减去它们的UTC偏移(从中获得self.utcoffset()
)来调整比较。为了阻止混合类型比较从对象地址回退到默认比较,当将time
对象与不同类型的对象进行TypeError
比较时,除非比较为==
或 ,否则引发比较!=
。后一种情况分别返回False
或True
。在版本3.3中更改:天真和感知
time
实例之间的平等比较不会引发TypeError
。 -
hash,用作dict键
-
高效酸洗
在布尔上下文中,time
始终认为对象为true。
版本3.5中已更改:在Python 3.5之前,如果time
对象在UTC中表示午夜,则认为该对象为false。这种行为被认为是模糊和容易出错的,并已在Python 3.5中删除。有关详细信息,请参阅bpo-13936。
其他构造函数:
- classmethod
time.
fromisoformat
(time_string ) time
以发出的格式之一返回对应于time_string的对应项time.isoformat()
。具体来说,此函数支持格式的字符串HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]
。警告
这不支持解析任意ISO 8601字符串 – 它仅用作反向操作
time.isoformat()
。版本3.7中的新功能。
实例方法:
time.
replace
(小时= self.hour,分钟= self.minute,second = self.second,microsecond = self.microsecond,tzinfo = self.tzinfo,* fold = 0 )- 返回
time
具有相同值的a,除了通过指定的任何关键字参数给定新值的那些属性。请注意,tzinfo=None
可以指定time
从感知创建天真time
,而不转换时间数据。版本3.6中的新功能:添加了
fold
参数。
time.
isoformat
(timespec =’auto’ )- 返回表示ISO 8601格式的时间的字符串,HH:MM:SS.ffffff,如果
microsecond
为0,则HH:MM:SS如果utcoffset()
不返回None
,则追加一个字符串,给出UTC偏移量:HH:MM:SS。 ffffff + HH:MM [:SS [.ffffff]]或者,如果self.microsecond是0,则HH:MM:SS + HH:MM [:SS [.ffffff]]。可选参数timespec指定要包括的时间的其他组件的数量(默认值为
'auto'
)。它可以是以下之一:'auto'
:相同,'seconds'
如果microsecond
为0,则相同'microseconds'
。'hours'
:包括hour
两位数的HH格式。'minutes'
:包含hour
并minute
采用HH:MM格式。'seconds'
:包含hour
,minute
和second
以HH:MM:SS格式。'milliseconds'
:包括全时,但将小数秒部分截断为毫秒。HH:MM:SS.sss格式。'microseconds'
:包括HH:MM:SS.ffffff格式的全职时间。
注意
排除的时间组件被截断,而不是舍入。
ValueError
将在无效的timespec参数上引发。>>> from datetime import time >>> time(hour=12, minute=34, second=56, microsecond=123456).isoformat(timespec='minutes') '12:34' >>> dt = time(hour=12, minute=34, second=56, microsecond=0) >>> dt.isoformat(timespec='microseconds') '12:34:56.000000' >>> dt.isoformat(timespec='auto') '12:34:56'
版本3.6中的新功能:添加了timespec参数。
time.
__str__
()- 时间t,
str(t)
相当于t.isoformat()
。
time.
strftime
(格式)- 返回表示时间的字符串,由显式格式字符串控制。有关格式化指令的完整列表,请参阅 strftime()和strptime()行为。
time.
__format__
(格式)- 与…相同
time.strftime()
。这使得可以time
在格式化的字符串文字中和使用时为对象指定格式字符串str.format()
。有关格式化指令的完整列表,请参阅 strftime()和strptime()行为。
time.
utcoffset
()- 如果
tzinfo
是None
,则返回None
,否则返回self.tzinfo.utcoffset(None)
,如果后者不返回None
或者timedelta
幅度小于一天的对象,则引发异常。版本3.7中已更改: UTC偏移量不限于整数分钟。
time.
dst
()- 如果
tzinfo
是None
,则返回None
,否则返回self.tzinfo.dst(None)
,并在后者未返回时引发异常None
,或者在timedelta
大小小于一天的情况下引发异常 。在版本3.7中更改: DST偏移不限于整数分钟。
time.
tzname
()- 如果
tzinfo
是None
,则返回None
,否则返回self.tzinfo.tzname(None)
,或者如果后者未返回异常或引发None
字符串对象则引发异常。
例:
>>> from datetime import time, tzinfo, timedelta >>> class GMT1(tzinfo): ... def utcoffset(self, dt): ... return timedelta(hours=1) ... def dst(self, dt): ... return timedelta(0) ... def tzname(self,dt): ... return "Europe/Prague" ... >>> t = time(12, 10, 30, tzinfo=GMT1()) >>> t # doctest: +ELLIPSIS datetime.time(12, 10, 30, tzinfo=<GMT1 object at 0x...>) >>> gmt = GMT1() >>> t.isoformat() '12:10:30+01:00' >>> t.dst() datetime.timedelta(0) >>> t.tzname() 'Europe/Prague' >>> t.strftime("%H:%M:%S %Z") '12:10:30 Europe/Prague' >>> 'The {} is {:%H:%M}.'.format("time", t) 'The time is 12:10.'