茨¶
这个模块提供了子类化抽象的时区实现 datetime.tzinfo
类型。有一些类可以处理tzfile格式的文件(通常在 /etc/localtime
, /usr/share/zoneinfo
,等等)、TZ环境字符串(所有已知格式)、给定范围(借助于相对增量)、本地计算机时区、固定偏移时区和UTC时区。
物体¶
-
dateutil.tz.
UTC
¶ 一个方便的例子
dateutil.tz.tzutc
.2.7.0 新版功能.
功能¶
-
dateutil.tz.
gettz
(name=None)¶ 从字符串表示中检索时区对象
此函数用于检索
tzinfo
子类,它最好地表示在POSIX TZ variable 设置为相同的值。如果没有参数或空字符串传递给
gettz
,返回本地时间:>>> gettz() tzfile('/etc/localtime')
此函数也是将IANA tz数据库键映射到
tzfile
物体:>>> gettz('Pacific/Kiritimati') tzfile('/usr/share/zoneinfo/Pacific/Kiritimati')
在Windows上,该标准扩展为包括操作系统提供的特定于Windows的区域名称:
>>> gettz('Egypt Standard Time') tzwin('Egypt Standard Time')
传递GNU
TZ
样式字符串时区规范返回tzstr
对象:>>> gettz('AEST-10AEDT-11,M10.1.0/2,M4.1.0/3') tzstr('AEST-10AEDT-11,M10.1.0/2,M4.1.0/3')
- 参数
name -- 时区名称(IANA,或在Windows上为Windows键)、的位置
tzfile(5)
zoneinfo文件或TZ
可变样式时区说明符。空字符串,无参数或None
被解释为当地时间。- 返回
返回
dateutil
的tzinfo
子类。
在 2.7.0 版更改: 在2.7.0版本之后,任何两个调用
gettz
使用相同的输入字符串将返回相同的对象:>>> tz.gettz('America/Chicago') is tz.gettz('America/Chicago') True
除了提高性能,这还确保 "same zone" semantics 用于同一区域中的日期时间。
-
gettz.
nocache
()¶ gettz的非缓存版本
-
gettz.
cache_clear
()¶
-
dateutil.tz.
enfold
(dt, fold=1)[源代码]¶ 为分配
fold
在实现PEP-495之前和之后都将属性设置为datetime。- 参数
fold -- 的值
fold
属性。这应该是0或1。- 返回
返回一个
getattr(dt, 'fold', 0)
收益率fold
适用于所有版本的Python。在python3.6之前的版本中,这是一个_DatetimeWithFold
对象的子类datetime.datetime
与fold
添加属性,如果fold
是1。
2.6.0 新版功能.
-
dateutil.tz.
datetime_ambiguous
(dt, tz=None)[源代码]¶ 给定一个日期时间和一个时区,确定给定的日期时间是否不明确(即是否有两个时间仅根据其DST状态区分)。
- 参数
dt -- A
datetime.datetime
(如果tz
提供。)tz -- A
datetime.tzinfo
支持fold
属性。如果None
否则,将使用datetime自己的时区。
- 返回
无论“墙时间”在中是否不明确,都返回布尔值
tz
.
2.6.0 新版功能.
-
dateutil.tz.
datetime_exists
(dt, tz=None)[源代码]¶ 一个给定的时间间隔是否会决定一个给定的时间间隔。
- 参数
dt -- A
datetime.datetime
(如果tz
提供。)tz -- A
datetime.tzinfo
支持fold
属性。如果None
否则,将使用datetime自己的时区。
- 返回
无论“墙时间”是否存在于
tz
.
2.7.0 新版功能.
-
dateutil.tz.
resolve_imaginary
(dt)[源代码]¶ 给定一个可能是虚构的日期时间,返回一个现有的日期时间。
所以假设在这个时间段中,偏移量不会发生变化。
>>> from dateutil import tz >>> from datetime import datetime >>> NYC = tz.gettz('America/New_York') >>> print(tz.resolve_imaginary(datetime(2017, 3, 12, 2, 30, tzinfo=NYC))) 2017-03-12 03:30:00-04:00 >>> KIR = tz.gettz('Pacific/Kiritimati') >>> print(tz.resolve_imaginary(datetime(1995, 1, 1, 12, 30, tzinfo=KIR))) 1995-01-02 12:30:00+14:00
作为一个注释,
datetime.astimezone()
被保证产生一个有效的、现有的日期时间,因此往返于UTC的往返时间就足以获得一个现存的日期时间,但是,这通常会“退回”到较早的时间,而不是向前落到STD端(尽管没有对此行为作出保证)。- 参数
dt -- A
datetime.datetime
可能存在也可能不存在。- 返回
返回现有
datetime.datetime
.如果dt
不是虚构的,返回的datetime是传递给函数的同一对象。
2.7.0 新版功能.
Classes¶
-
class
dateutil.tz.
tzutc
[源代码]¶ 这是一个表示UTC时区的tzinfo对象。
例子:
>>> from datetime import * >>> from dateutil.tz import * >>> datetime.now() datetime.datetime(2003, 9, 27, 9, 40, 1, 521290) >>> datetime.now(tzutc()) datetime.datetime(2003, 9, 27, 12, 40, 12, 156379, tzinfo=tzutc()) >>> datetime.now(tzutc()).tzname() 'UTC'
在 2.7.0 版更改:
tzutc()
现在是单例,所以tzutc()
将始终返回同一对象。>>> from dateutil.tz import tzutc, UTC >>> tzutc() is tzutc() True >>> tzutc() is UTC True
-
class
dateutil.tz.
tzoffset
(name, offset)[源代码]¶ 表示与UTC的固定偏移量的简单类。
- 参数
name -- 时区名称,当
tzname()
被称为。offset -- 时区偏移量(秒),或(自2.6.0版起,表示为
datetime.timedelta
对象)。
-
class
dateutil.tz.
tzwinlocal
[源代码]¶ 类表示Windows注册表中的本地时区信息
同时
dateutil.tz.tzlocal
进行系统调用(通过time
模块)检索时区信息,tzwinlocal
直接从Windows注册表检索规则并创建一个类似dateutil.tz.tzwin
.因为Windows没有等效的
time.tzset()
,在Windows上,dateutil.tz.tzlocal
实例将始终反映时区设置 进程启动时 ,这意味着在Windows上运行程序期间更改计算机的时区设置将 not 反映在dateutil.tz.tzlocal
. 因为tzwinlocal
直接读取注册表,它不受此问题的影响。注解
仅在Windows上可用
-
display
()¶ 返回时区的显示名称。
-
transitions
(year)¶ 对于给定的一年,获取DST的开启和关闭转换时间,通常在标准时间一侧表示。对于没有转换的区域,此函数返回
None
.- 参数
year -- 要查询其转换的年份。
- 返回
返回A
tuple
属于datetime.datetime
物体,(dston, dstoff)
对于具有年度DST过渡的区域,或None
对于固定偏移区域。
-
-
class
dateutil.tz.
tzrange
(stdabbr, stdoffset=None, dstabbr=None, dstoffset=None, start=None, end=None)[源代码]¶ 这个
tzrange
对象是由一组偏移量和缩写指定的时区,相当于TZ
变量可以在类似POSIX的系统中指定,但是使用Python delta对象来指定DST的开始、结束和偏移。- 参数
stdabbr -- 标准时间的缩写(例如。
'EST'
)stdoffset -- 整数或
datetime.timedelta
对象或等效对象,指定与UTC的基偏移量。如果未指定,则使用+00:00。dstabbr -- 夏令时的缩写(例如。
'EDT'
). 如果指定,则在没有其他DST信息的情况下,假定DST发生并且默认行为或dstoffset
,start
和end
被使用。如果未指定且未指定其他DST信息,则假定该区域没有DST。如果未指定,而其他DST信息 is 指定,DST出现在区域中,但时区缩写保持不变。dstoffset -- 一个整数或
datetime.timedelta
指定DST期间UTC偏移量的对象或等效对象。如果指定了未指定和任何其他DST信息,则假定为标准偏移+1小时。start -- A
relativedelta.relativedelta
对象或等效对象,指定夏令时开始的时间和时间。例如,要指定DST从3月的第2个星期日凌晨2点开始,请通过:relativedelta(hours=2, month=3, day=1, weekday=SU(+2))
如果指定了“未指定”和任何其他DST信息,则默认值为4月第一个星期日的凌晨2点。end -- A
relativedelta.relativedelta
对象或等效对象,表示夏令时结束的时间和时间,其指定方法与中的相同start
. 一个注意事项是,这应该指向 标准 因此,如果在DST区域的凌晨2点发生转换,并且时钟被设置回凌晨1点到1点,则设置hours
参数设置为+1。
例子:
>>> tzstr('EST5EDT') == tzrange("EST", -18000, "EDT") True >>> from dateutil.relativedelta import * >>> range1 = tzrange("EST", -18000, "EDT") >>> range2 = tzrange("EST", -18000, "EDT", -14400, ... relativedelta(hours=+2, month=4, day=1, ... weekday=SU(+1)), ... relativedelta(hours=+1, month=10, day=31, ... weekday=SU(-1))) >>> tzstr('EST5EDT') == range1 == range2 True
-
class
dateutil.tz.
tzstr
(s, posix_offset=False)[源代码]¶ tzstr
对象是由时区字符串指定的时区对象,因为它将传递给TZ
变量(参见 GNU C Library: TZ Variable 了解更多详细信息)。有一个值得注意的例外,那就是POSIX样式的时区使用倒置的偏移格式,所以通常情况下
GMT+3
将被解析为偏移3小时 后面 格林威治标准时间tzstr
时区对象将此解析为偏移量3小时 向前地 如果要保持POSIX行为,请传递True
价值到posix_offset
.这个
tzrange
对象提供相同的功能,但使用relativedelta.relativedelta
物体。而不是绳子。- 参数
s -- 时区字符串
TZ
可变格式。这可能是一个bytes
(2.x:str
)str
(2.x:unicode
)或者是一个发出unicode字符的流(例如。StringIO
)posix_offset -- 可选。如果设置为
True
,解释字符串,例如GMT+3
或UTC+3
因为是3小时 后面 根据POSIX标准,UTC而不是超前。
警告
在2.7.0版之前,此函数还支持以下格式的时区:
EST5EDT,4,0,6,7200,10,0,26,7200,3600
EST5EDT,4,1,0,7200,10,-1,0,7200,3600
此格式是非标准格式,已被弃用;此函数将引发
DeprecatedTZFormatWarning
直到在将来的版本中删除支持。
-
class
dateutil.tz.
tzical
(fileobj)[源代码]¶ 此对象用于分析iCalendar样式
VTIMEZONE
结构如 RFC 5545 第4.6.5节分为一个或多个 tzinfo 物体。- 参数
fileobj -- iCalendar格式的文件或流,它应该是用CRLF结尾的UTF-8编码的。
-
class
dateutil.tz.
tzwin
(name)[源代码]¶ 从Windows注册表中的区域信息创建的时区对象
这些与
dateutil.tz.tzrange
对象,其中时区数据以每年0或2个时区转换的单个偏移规则的格式提供。- Param
命名Windows时区键的名称,例如“东部标准时间”。键的完整列表可以用
tzwin.list()
.
注解
仅在Windows上可用
-
display
()¶ 返回时区的显示名称。
-
static
list
()¶ 返回系统已知的所有时区的列表。
-
transitions
(year)¶ 对于给定的一年,获取DST的开启和关闭转换时间,通常在标准时间一侧表示。对于没有转换的区域,此函数返回
None
.- 参数
year -- 要查询其转换的年份。
- 返回
返回A
tuple
属于datetime.datetime
物体,(dston, dstoff)
对于具有年度DST过渡的区域,或None
对于固定偏移区域。