这个包提供了一个日期时间数据类型,正如zope所知。除非需要与zopeapi通信,否则最好使用python的内置datetime模块。

DateTime的Python项目详细描述


日期时间包

日期/时间值的封装。

功能时区()

返回已识别时区名称的列表:

< Buff行情>
>>> from DateTime import Timezones
>>> zones = set(Timezones())

几乎所有的标准Pytz时区都包括在内,除了 一些常用但模棱两可的缩写,其中 用法与pytz使用的名称冲突:

< Buff行情>
>>> import pytz
>>> [x for x in pytz.all_timezones if x not in zones]
['CET', 'EET', 'EST', 'MET', 'MST', 'WET']

类日期时间

DateTime对象在时间上表示实例并为 在不影响 对象。

DateTime对象可以由多种字符串或 数值数据,或者可以从其他日期时间对象计算。 日期时间支持将其表示转换为多个 主要时区,以及创建DateTime对象的功能 在给定时区的上下文中。

datetime对象提供部分数值行为:

  • 可以减去两个日期时间对象来获得时间(以天为单位) 两者之间。
  • 日期时间对象和正数或负数可以添加到 获取一个新的日期时间对象,它是给定的天数 而不是输入日期时间对象。
  • 可以将正数或负数和日期时间对象添加到 获取一个新的日期时间对象,它是给定的天数 而不是输入日期时间对象。
  • 正数或负数可以从日期时间中减去 对象获取新的日期时间对象,该对象是给定的 早于输入日期时间对象的天数。

DateTime对象可以转换为整数、长或浮点数 自1901年1月1日起的天数,使用标准int、long和float 函数(兼容性说明:int、long和float返回数字 自1901年以来的天数(GMT,而不是本地机器时区)。 DateTime对象还提供以浮点格式访问其值的权限 与python时间模块一起使用,前提是 对象落在基于历元的时间模块的范围内。

DateTime对象应视为不可变;所有转换和数值 操作返回一个新的datetime对象,而不是修改当前对象。

DateTime对象始终将其值保持为绝对UTC时间, 并在某个时区的上下文中基于 用于创建对象的参数。DateTime对象的方法 基于时区上下文返回值。

请注意,在所有情况下,本地计算机时区都用于 如果未指定时区,则显示。

日期时间的构造函数

dateTime()返回一个新的日期时间对象。可以创建日期时间 从零到七个参数:

  • 如果调用该函数时没有参数,则当前日期/ 返回时间,以本地计算机的时区表示。

  • 如果使用单个字符串参数调用函数,该参数是 可识别的时区名称,表示当前时间的对象是 返回,在指定时区中表示。

  • 如果使用单个字符串参数调用函数 表示有效的日期/时间,表示该日期的对象/ 将返回时间。

    作为一般规则,任何被认可的日期时间表示 对北美居民来说,毫不含糊是可以接受的。(The 这一资格的原因是在北美,一个日期如下: 1994年2月1日被解释为1994年2月1日,而 世界,解释为1994年1月2日)日期/时间 字符串由两个组件组成,日期组件和可选组件 时间成分,由一个或多个空间分隔。如果时间 忽略组件,假定为上午12:00。

    指定的任何可识别时区名称作为 日期/时间字符串将用于计算日期/时间值。 (如果使用字符串创建日期时间, "1997年3月9日下午1:45美国/太平洋",价值将主要是 与在指定日期捕获time.time()和 在那个时区的机器上的时间)。如果没有超过时区,那么 将使用本地计算机上配置的时区, 除了 如果日期格式与iso 8601('yyyy-mm-dd')匹配,则 将使用UTC/CMT+0作为时区。

    o返回当前日期/时间,以美国/东方表示:

    < Buff行情>
    >>> from DateTime import DateTime
    >>> e = DateTime('US/Eastern')
    >>> e.timezone()
    'US/Eastern'
    

    o返回指定的时间,用本地机器区域表示:

    < Buff行情>
    >>> x = DateTime('1997/3/9 1:45pm')
    >>> x.parts() # doctest: +ELLIPSIS
    (1997, 3, 9, 13, 45, ...)
    

    o本地机器区域中的指定时间,详细格式:

    < Buff行情>
    >>> y = DateTime('Mar 9, 1997 13:45:00')
    >>> y.parts() # doctest: +ELLIPSIS
    (1997, 3, 9, 13, 45, ...)
    >>> y == x
    True
    

    o通过ISO 8601规定的UTC时间规则:

    < Buff行情>
    >>> z = DateTime('2014-03-24')
    >>> z.parts() # doctest: +ELLIPSIS
    (2014, 3, 24, 0, 0, ...)
    >>> z.timezone()
    'GMT+0'
    

    日期组件由年、月和日值组成。这个 年份值必须是一位、两位或四位整数。如果一个- 或者使用两位数的年份,假定年份在 二十世纪。月份可以是一个整数,从1到12,一个月 名称,或月份删减,其中一个期间可以选择跟随 删节。日期必须是从1到 一个月中的天。年、月和日的值可以分开 按句点、连字符、前进、闪影或空格。额外的空间是 允许在分隔符周围使用。年、月和日的值可以是 以任何顺序给出,只要能够区分 组件。如果三个分量都是小于 13,则假定一个月一天一年的订购。

    时间分量由小时、分钟和秒值组成 用冒号隔开。小时值必须是0之间的整数 包括23个。分钟值必须是0之间的整数 包括59个。第二个值可以是整数值 包括0到59.999。第二个值或两者 可以输入分钟和秒值。时间可能紧随其后 上午或下午,在大写或小写的情况下,在这种情况下,12小时时钟是 假设,

  • 如果使用单个数值参数调用datetime函数, 该数字假定为浮点值,如 在time.time()或1月1日之后几天返回的, 1901 00:00:00 UTC。

    返回表示GMT值的DateTime对象 在本地计算机的 时区,或1901年1月1日之后的天数。注意 1901年之后的天数需要从 本地计算机时区的视图。否定的论点会 在1901年之前生成日期时间值。

  • 如果使用两个数字参数调用函数,则 第一个参数是整数年,第二个参数是 从年初算起,在 本地计算机时区的上下文。返回的日期时间值 是从给定的 年,在本地计算机的时区中表示。偏移量 可能是正的,也可能是负的。假设两位数年份 二十世纪。

  • 如果使用两个参数调用函数,则第一个参数为float 表示格林尼治标准时间历元过去的秒数(例如 由time.time()返回的字符串)和第二个a字符串命名为 识别的时区,值为GMT时间的日期时间将 返回,表示在给定时区。

    < Buff行情>
    >>> import time
    >>> t = time.time()
    

    时间t表示为us/东部:

    < Buff行情>
    >>> now_east = DateTime(t, 'US/Eastern')
    

    时间t表示为美国/太平洋:

    < Buff行情>
    >>> now_west = DateTime(t, 'US/Pacific')
    

    只有它们的表示不同:

    < Buff行情>
    >>> from DateTime import Timezones
    >>> zones = set(Timezones())
    
    0
  • 如果函数是用三个或更多的数值参数调用的, 然后第一个被认为是整数年,取第二年 为整数月,第三个为整数日。 如果值的组合无效,则datetimeerror为 提高。一位或两位数字的年份(最多69年)假设为 21世纪,而价值观70-99被认为是20世纪。 第四、第五和第六个参数是浮点,正 或以小时、分钟和天为单位的负偏移,以及 如果未给定,则默认为零。可选字符串可以指定为 表示时区的最后一个参数(其效果是 你当时在一台机器上获取了time.time()的值 指定的时区)。

如果传递给DateTime构造函数的字符串参数不能是 解析后,它将增加语法错误。无效的日期、时间或 时区组件将引发日期时间错误。

模块函数timezones()将返回时区列表 由DateTime模块识别。时区名称的识别是 不区分大小写。

DateTime的实例方法(IDateTime接口)

转换和比较方法
  • time time() 以浮点数字形式返回日期/时间 utc,采用python时间模块使用的格式。注意它是 可以使用没有 对时间模块有意义的值,在这种情况下 引发日期时间错误。DateTime对象的值通常必须 介于1970年1月1日(或您的本地机器纪元)到2038年1月 生成有效的time.time()样式值。

    < Buff行情>
    >>> from DateTime import Timezones
    >>> zones = set(Timezones())
    
    1
    >>> from DateTime import Timezones
    >>> zones = set(Timezones())
    
    2
    >>> from DateTime import Timezones
    >>> zones = set(Timezones())
    
    3
  • tozone(z) 返回值为当前值的日期时间 对象,表示在指定时区:

    < Buff行情>
    >>> from DateTime import Timezones
    >>> zones = set(Timezones())
    
    4
    >>> from DateTime import Timezones
    >>> zones = set(Timezones())
    
    5
  • isfuture() 如果此对象表示日期/时间,则返回true 晚于通话时间:

    < Buff行情>
    >>> from DateTime import Timezones
    >>> zones = set(Timezones())
    
    6
  • ispast() 如果此对象表示日期/时间,则返回true 早于通话时间:

    < Buff行情>
    >>> from DateTime import Timezones
    >>> zones = set(Timezones())
    
    7
  • iscurrentYear() 如果此对象表示 本年度内的日期/时间 对象的时区表示:

    < Buff行情>
    >>> from DateTime import Timezones
    >>> zones = set(Timezones())
    
    8
  • iscurrentmonth() 如果此对象表示 当前月份内的日期/时间,在 此对象的时区表示:

    < Buff行情>
    >>> from DateTime import Timezones
    >>> zones = set(Timezones())
    
    9
  • iscurrentday() 如果此对象表示 当前日期内的日期/时间,在此上下文中 对象的时区表示:

    < Buff行情>
    >>> import pytz
    >>> [x for x in pytz.all_timezones if x not in zones]
    ['CET', 'EET', 'EST', 'MET', 'MST', 'WET']
    
    0
  • iscurrenthour() 如果此对象表示 当前小时内的日期/时间,在此上下文中 对象的时区表示:

    < Buff行情>
    >>> import pytz
    >>> [x for x in pytz.all_timezones if x not in zones]
    ['CET', 'EET', 'EST', 'MET', 'MST', 'WET']
    
    1
    >>> import pytz
    >>> [x for x in pytz.all_timezones if x not in zones]
    ['CET', 'EET', 'EST', 'MET', 'MST', 'WET']
    
    2
  • iscurrentminute() 如果此对象表示 当前分钟内的日期/时间,在 此对象的时区表示:

    < Buff行情>
    >>> import pytz
    >>> [x for x in pytz.all_timezones if x not in zones]
    ['CET', 'EET', 'EST', 'MET', 'MST', 'WET']
    
    3
  • isleapYear() 如果当前年份(在 对象的时区)是闰年:

    < Buff行情>
    >>> import pytz
    >>> [x for x in pytz.all_timezones if x not in zones]
    ['CET', 'EET', 'EST', 'MET', 'MST', 'WET']
    
    4
  • < DL>
    earliessttime() 返回表示

    仍在范围内的最早可能时间(以秒为单位) 当前对象的日期,在对象的时区上下文中:

    >>> import pytz
    >>> [x for x in pytz.all_timezones if x not in zones]
    ['CET', 'EET', 'EST', 'MET', 'MST', 'WET']
    
    5
  • latestTime() 返回表示 最新的可能时间(以整秒为单位),仍在 当前对象的日期,在对象的时区上下文中

    BLOCKQuo> 啊!

组件访问

  • parts() 返回一个包含日历年、月份的元组, 对象的日、时、分、秒和时区

    <阻塞率> 是啊。
  • 时区() 返回表示对象的时区:

    <阻塞率> AAAAAAAAA 28
  • tzoffset() 返回对象的时区偏移量时区:

    <阻塞率> AAAAAAA 29
  • year() 返回对象的日历年:

    <阻塞率> AAAAAAA 30
  • month() 以整数形式返回对象的月份:

    <阻塞率> 啊!
  • month() 返回完整的月份名称:

    <阻塞率> 啊!
  • amonth() 返回已删除的月份名称:

    <阻塞率> 是啊。
  • p month() 返回已删节(带句点)的月份名称:

    <阻塞率> 啊!
  • day() 返回整数日:

    <阻塞率> 啊!
  • day() 返回一周中某一天的全名:

    <阻塞率> 啊!
  • DayofYear() 返回一年中的某一天,在 对象的时区表示:

    <阻塞率> AAAAAAA 37
  • aday() 返回星期几的缩写名:

    <阻塞率> AAAAAAAAA 38
  • pday() 返回 本周:

    <阻塞率> 啊!
  • dow() 返回一周中的整数日,其中星期日为0:

    <阻塞率> 啊!
  • dowu 1() 返回一周中的整数日,其中星期日为1:

    <阻塞率> AAAAAAA 41
  • h u 12() 返回小时的12小时时钟表示:

    <阻塞率> AAAAAAA 42
  • h u 24() 返回小时的24小时时钟表示:

    <阻塞率> 啊!
  • am pm() 返回适当的时间修饰符(am或pm):

    <阻塞率> 啊!
  • hour() 返回小时的24小时时钟表示:

    <阻塞率> 啊!45!
  • 分钟() 返回分钟:

    <阻塞率> 啊!
  • 秒() 返回秒:

    <阻塞率> 啊!
  • millis() 返回自格林尼治时间纪元以来的毫秒数。

    <阻塞率> AAAAAAA 48

strftime()

请参见 tests/test/datetime.py

以前日期时间的常规格式

  • 日期() 返回对象的日期字符串:

    <阻塞率> AAAAAAA 49
  • time() 将对象的时间字符串返回到最近的 第二:

    <阻塞率> 啊!
  • timeminutes() 返回未显示对象的时间字符串 秒数:

    <阻塞率> 啊!
  • ampm() 将对象的时间字符串返回到最接近的秒数:

    <阻塞率> AAAAAAA 52
  • ampmminutes() 返回未显示对象的时间字符串 秒数:

    <阻塞率> 次级方案53
  • precisetime() 返回对象的时间字符串:

    <阻塞率> 啊!
  • preciseampm() 返回对象的时间字符串:

    <阻塞率> 啊!
  • yy() 以2位字符串的形式返回日历年

    <阻塞率> 啊!
  • mm() 将月份返回2位数< > > > <阻塞率> 啊!

  • dd() 将日期返回为2位字符串:

    <阻塞率> AAAAAAA 58
  • rfc822() 以rfc822格式返回日期:

    <阻塞率> 啊!

新格式

  • fcommon() 返回一个字符串,表示 格式:1997年3月9日下午1:45:

    <阻塞率> 啊!60!
  • fcommonz() 返回一个字符串,表示 格式:1997年3月9日下午1:45美国/东部:

    <阻塞率> AAAAAAA 61
  • acomon() 返回一个字符串,表示 格式:1997年3月9日下午1:45:

    <阻塞率> AAAAAAA 62
  • acomonz() 返回一个字符串,表示对象在 格式:1997年3月9日下午1:45美国/东部:

    <阻塞率> AAAAAAA 63
  • pcommon() 返回一个字符串,表示 格式:1997年3月9日下午1:45:

    <阻塞率> AAAAAAA 64
  • pcommonz() 返回一个字符串,表示 格式:1997年3月9日下午1:45美国/东部:

    <阻塞率> 啊!
  • iso() 以iso格式返回带有日期/时间的字符串。注: 这不是ISO 8601格式!参见下面的ISO8601和HTML4方法 用于符合ISO 8601标准的输出。数据输出为:yyyy-mm-dd hh:mm:ss

    <阻塞率> AAAAAAA 66
  • iso8601() 以与iso8601兼容的格式返回对象 包含日期、时间(秒)-精度和时区 标识符-请参见http://www.w3.org/tr/note-datetime" rel="nofollow">http://www.w3.org/tr/note-datetime。日期是 输出为:yyyy-mm-ddthh:mm:sstzd(t是文本字符,tzd是 时区设计器,格式+hh:mm或-hh:mm)。

    下面的 html4() 方法提供相同的格式,但是 返回值前转换为UTC并设置TZD"Z"

    <阻塞率> 啊!
  • html4() 以html4.0中使用的格式返回对象 规范,ISO8601标准格式之一。湖 http://www.w3.org/tr/note-datetime 。数据输出为: yyyy-mm-ddthh:mm:ssz(t,z是文本字符,时间在 UTC):

    <阻塞率> 啊!
  • julian day() 根据 http://www.tondering.dk/claus/cal/node3.html"35;sec-calcjd

    <阻塞率> AAAAAAA 69
  • week() 根据ISO返回周数 参见http://www.tondering.dk/claus/cal/node6.html 35;section006700000000000000000000000000000000000" rel="nofollow">http://www.tondering.dk/claus/cal/node6.html'35;section006700000000000000000000000000000

    <阻塞率> 啊!

已弃用的API
  • 星期几():参见星期几()
  • 天():请参阅pday()
  • 周一():请参见周一()
  • monu():请参见pmonth

由DateTime提供的一般服务

datetimes可以是repr();结果将是一个字符串,指示如何 创建这样的datetime对象:

<阻塞率> 次级方案71

当我们把它们转换成一个字符串时,我们会得到一个更好的字符串 实际显示给用户:

<阻塞率> AAAAAAA 72

DateTime的哈希值基于日期和时间,并且是 对于日期时间的不同表示形式,相等:

<阻塞率> AAAAAAA 73

DateTime对象可以与其他DateTime对象进行比较,也可以是浮动的 点编号,如python时间返回的点编号 使用equalto方法的模块。使用此API如果 对象表示等于指定日期时间或时间模块的日期/时间。 样式时间:

<阻塞率> AAAAAAA 74

不等式也一样:

<阻塞率> 啊!

普通的相等操作只适用于DateTime对象,并采用 考虑时区设置:

<阻塞率> 啊! 啊!

但是其他的比较操作在时间和 不是表示本身:

<阻塞率> AAAAAAA 78 AAAAAAA 79 啊! AAAAAAA 81 啊! AAAAAAA 83 AAAAAAA 84 啊!

日期时间提供的数字服务

日期时间可以添加到数字,数字可以添加到 日期时间:

<阻塞率> AAAAAAA 86

不能添加两个日期时间:

<阻塞率> AAAAAAAAA 87

可以从日期时间中减去日期时间或数字, 但是,日期时间不能从数字中减去:

<阻塞率> 啊!

日期时间也可以转换为整数(自 历元)和浮动:

<阻塞率> AAAAAAA 89

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何避免springbootstarterparent和dependency中的flyway包冲突   java文本文件写入不起作用   java获取名为DAO类的Bean创建异常   java类路径和清单文件   如何使用Java中的模式来获取像C中的“sscanf”这样的组?   java Spring自动连接具有构造函数的类   clientSecurity运行的java geode示例失败   java JavaFX:在FXML中从ResourceBundle访问非string对象   java登录到google firebase   java对象在通过构造函数后不会更改。为什么?   java(Android)对特定页面的操作webView   javascript如何在webview的js中从java调用变量   持久化—一种在Java中存储和检索对象而不使用关系数据库的简单方法?   java Ldap获取通讯组列表中的用户   java检查温度条件   java后退按钮警报框(Android Studio)   数组java列表问题:为什么我运行它时,它会在第三次打印时打印出4?   java相对路径与绝对路径