IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]5.1.5 time对象

    caimouse发表于 2015-11-25 21:44:05
    love 0

    类time创建的对象表示本地时间,与任何特别日期没有关系。可以通过时区tzinfo来调整时间。

    class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None) 

    所有参数都是可选的。除了tzinfo对象,其它参数都是整数表示。其中参数范围如下:

    l 0 <= hour < 24

    l 0 <= minute < 60

    l 0 <= second < 60

    l 0 <= microsecond < 1000000

    当参数范围超出这些范围时,就会抛出异常ValueError。

    主要用来创建一个time对象。

    例子:

    #python 3.4.3

    import datetime

     

    time = datetime.time(hour = 10)

    print('time:', time)

    结果输出如下:

    time: 10:00:00

     

    类属性:

    time.min

    返回表示最小的时间对象。

    time.max

    返回表示最大的时间对象。

    time.resolution

    返回两个时间之差最小分别的精度。目前是一个微秒。

    例子:

    #python 3.4.3

    import datetime

     

    time = datetime.time(hour = 10)

    print('time.min', time.min)

    print('time.max', time.max)

    print('time.resolution', time.resolution)

    结果输出如下:

    time.min 00:00:00

    time.max 23:59:59.999999

    time.resolution 0:00:00.000001

     

    实例属性,只能读取不能修改:

    time.hour 

    范围是24小时。

    time.minute 

    范围是60分钟。

    time.second 

    范围是60秒。

    time.microsecond

    范围是1000000微秒。

    time.tzinfo 

    保存时区信息对象或者没有时保存为None。

    例子:

    #python 3.4.3

    import datetime

     

    time = datetime.time(hour = 10, minute = 1, second = 20, microsecond = 30)

    print('time.hour:', time.hour)

    print('time.minute:', time.minute)

    print('time.second:', time.second)

    print('time.microsecond:', time.microsecond)

    结果输出如下:

    time.hour: 10

    time.minute: 1

    time.second: 20

    time.microsecond: 30

     

    time.replace([hour[, minute[, second[, microsecond[, tzinfo]]]]]) 

    通过修改部分参数得到一个新的时间对象,其它没有修改的参数与实例一致。

    例子:

    #python 3.4.3

    import datetime

     

    time = datetime.time(hour = 10, minute = 1, second = 20, microsecond = 30)

    new = time.replace(20)

    print('time.hour:', time.hour)

    print('new.hour:', new.hour)

    结果输出如下:

    time.hour: 10

    new.hour: 20

     

    time.isoformat() 

    返回一个使用ISO8601标准格式化后的时间字符串。如果微秒不为0,则按格式HH:MM:SS.mmmmmm来格式化,如果微秒为0,则按HH:MM:SS来格式化。如果还有时区,那么在后面添加时区时间:HH:MM:SS.mmmmmm+HH:MM或HH:MM:SS+HH:MM。

    例子:

    #python 3.4.3

    import datetime

     

    time = datetime.time(hour = 10, minute = 1, second = 20, microsecond = 30)

    print('time.isoformat:', time.isoformat())

    结果输出如下:

    time.isoformat: 10:01:20.000030

     

    time.__str__() 

    time对象的str()函数格式化,str(t)等同于t.isoformat()。

    例子:

    #python 3.4.3

    import datetime

     

    time = datetime.time(hour = 10, minute = 1, second = 20, microsecond = 30)

    print('time.isoformat:', str(time))

    结果输出如下:

    time.isoformat: 10:01:20.000030

     

    time.strftime(format)

    通过格式字符串来控制格式化时间。

    例子:

    #python 3.4.3

    import datetime

     

    time = datetime.time(hour = 10, minute = 1, second = 20, microsecond = 30)

    print('time.isoformat:', time.strftime('%H:%M:%S'))

    结果输出如下:

    time.isoformat: 10:01:20

     

    time.__format__(format) 

    与time.strftime()相同功能,只是这个函数使用在str.format()调用。

     

    time.utcoffset() 

    返回UTC的相对时间。如果时区tzinfo为空,返回None。如果非空,返回self.tzinfo.utcoffset(None)。

     

    time.dst() 

    如果tzinfo返回None。如果tzinfo非空,返回self.tzinfo.dst(None)。

     

    time.tzname()

    返回时区的名称。如果tzinfo为空,返回None。

    例子:

    #python 3.4.3

    import datetime

     

    class GMT8(datetime.tzinfo):

        def utcoffset(self, dt):

            return datetime.timedelta(hours=8)

        def dst(self, dt):

            return datetime.timedelta(0)

        def tzname(self,dt):

            return "Asia/Beijing"

     

    t = datetime.time(12, 10, 30, tzinfo=GMT8())

    print(t)

    print(t.dst())

    print(t.tzname())

    print('The {} is {:%H:%M}.'.format("time", t))

    结果输出如下:

    12:10:30+08:00

    0:00:00

    Asia/Beijing

    The time is 12:10.

     


    蔡军生 QQ:9073204  深圳



沪ICP备19023445号-2号
友情链接