5.1.5 time对象

来源:互联网 发布:阿里云公共dns 编辑:程序博客网 时间:2024/04/28 08:54

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:MMHH: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  深圳

0 0
原创粉丝点击