You are here:  Home » Python » datetime.time基本日期和时间类型的time对象详解(24)Python语言(必读进阶学习教程)(参考资料)

时间对象表示一天中的(本地)时间,与任何特定日期无关,并且可以通过tzinfo对象进行调整。

class datetime.time小时= 0分钟= 0秒= 0微秒= 0tzinfo =无*折叠= 0 
所有参数都是可选的。 tzinfo可以是None,或者是tzinfo子类的实例 。其余参数可以是整数,在以下范围内:

如果给出了超出这些范围的参数,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中的新功能。

支持的操作:

  • 的比较timetime,其中一个被认为是小于bb中的时间。如果一个比较天真且另一个比较清楚,TypeError则在尝试进行订单比较时会引发比较。对于相等比较,天真实例永远不等于意识实例。

    如果两个比较都知道并具有相同的tzinfo属性,tzinfo则忽略common 属性并比较基本时间。如果两个比较都知道并且具有不同的tzinfo属性,则首先通过减去它们的UTC偏移(从中获得self.utcoffset())来调整比较。为了阻止混合类型比较从对象地址回退到默认比较,当将time对象与不同类型的对象进行TypeError比较时,除非比较为==或 ,否则引发比较!=。后一种情况分别返回FalseTrue

    在版本3.3中更改:天真和感知time实例之间的平等比较不会引发TypeError

  • hash,用作dict键

  • 高效酸洗

在布尔上下文中,time始终认为对象为true。

版本3.5中已更改:在Python 3.5之前,如果time对象在UTC中表示午夜,则认为该对象为false。这种行为被认为是模糊和容易出错的,并已在Python 3.5中删除。有关详细信息,请参阅bpo-13936

其他构造函数:

classmethod time.fromisoformattime_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.minutesecond = self.secondmicrosecond = self.microsecondtzinfo = self.tzinfo* fold = 0 
返回time具有相同值的a,除了通过指定的任何关键字参数给定新值的那些属性。请注意, tzinfo=None可以指定time从感知创建天真time,而不转换时间数据。

版本3.6中的新功能:添加了fold参数。

time.isoformattimespec =’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':包含hourminute采用HH:MM格式。
  • 'seconds':包含hourminutesecond 以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__
时间tstr(t)相当于t.isoformat()
time.strftime格式
返回表示时间的字符串,由显式格式字符串控制。有关格式化指令的完整列表,请参阅 strftime()和strptime()行为
time.__format__格式
与…相同time.strftime()。这使得可以time格式化的字符串文字中和使用时为对象指定格式字符串str.format()。有关格式化指令的完整列表,请参阅 strftime()和strptime()行为
time.utcoffset
如果tzinfoNone,则返回None,否则返回 self.tzinfo.utcoffset(None),如果后者不返回None或者timedelta幅度小于一天的对象,则引发异常。

版本3.7中已更改: UTC偏移量不限于整数分钟。

time.dst
如果tzinfoNone,则返回None,否则返回 self.tzinfo.dst(None),并在后者未返回时引发异常None,或者在timedelta大小小于一天的情况下引发异常 。

在版本3.7中更改: DST偏移不限于整数分钟。

time.tzname
如果tzinfoNone,则返回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.'