码迷,mamicode.com
首页 > 其他好文 > 详细

5. 数据类型库

时间:2015-11-15 10:56:17      阅读:492      评论:0      收藏:0      [点我收藏+]

标签:python   milang   datetime   

5. 数据类型库

本库主要描述了不同数据类型的使用,比如日期类型、时间类型、固定类型数组、堆队列、同步队列和集合。Python也提供了很多内置数据类型,比如dictlistsetfrozensettuple。以及str类支持Unicode字符串,bytes类保存二进制数据。下面来学习数据类型库提供更多的数据类型。

5.1 datetime--基本日期和时间类型

本模块datetime提供了对日期和时间进行简单或者复杂的使用方法。并且提供日期和时间的数学上运算,对日期和时间进行抽取部分内容使用,同时具有格式化和操作方便性。与此相关内容的模块还有timecalendar模块。

 

datatime模块提供下面的常量:

datetime.MINYEAR 

datedatetime对象里允许设置最小的年数。默认MINYEAR等于1.

datetime.MAXYEAR 

datedatetime对象里允许设置最大的年数。默认MAXYEAR等于9999.

例子:

#python 3.4.3

import datetime

 

print(‘datetime.MINYEAR:‘, datetime.MINYEAR)

print(‘datetime.MAXYEAR:‘, datetime.MAXYEAR)

结果输出如下:

datetime.MINYEAR: 1

datetime.MAXYEAR: 9999

5.1.1 可用类型

class datetime.date 

表示原始日期,使用公历日历。常用的属性是yearmonthday

例子:

#python 3.4.3

import datetime

 

dt = datetime.date

print(‘date:‘, dt.max)

print(‘date:‘, dt.today())

结果输出如下:

date: 9999-12-31

date: 2015-10-23

 

class datetime.time 

一个理想化的时间类,假定每天都有24*60*60秒时间。属性有:hourminutesecondmicrosecondtzinfo

例子:

#python 3.4.3

import datetime

 

dt = datetime.time

print(‘time:‘, dt.max)

print(‘time:‘, dt.resolution)

结果输出如下:

time: 23:59:59.999999

time: 0:00:00.000001

 

class datetime.datetime 

组合了类date和类time的功能。拥有属性有:yearmonthdayhourminutesecond microsecondtzinfo

例子:

#python 3.4.3

import datetime

 

dt = datetime.datetime

print(‘date:‘, dt.today())

print(‘time:‘, dt.max)

print(‘time:‘, dt.resolution)

结果输出如下:

date: 2015-10-26 08:43:16.594399

time: 9999-12-31 23:59:59.999999

time: 0:00:00.000001

 

class datetime.timedelta 

表示两个日期或时间或日期时间之间的差,精度到毫秒(ms)。

例子:

#python 3.4.3

import datetime

 

to = datetime.datetime(2015, 10, 26)

dd = to - datetime.timedelta(days = 100)

print(to, dd)

结果输出如下:

2015-10-26 00:00:00 2015-07-18 00:00:00

 

class datetime.tzinfo 

抽象表示的时区信息对象。主要用在datetimetime对象里,提供一个时区的调整,根据时区来计算时间差别。

例子:

#python 3.4.3

import datetime

 

#使用时区类datetime.tzinfo

class UTC(datetime.tzinfo):

    """UTC"""

    def __init__(self,offset = 0):

        self._offset = offset

 

    def utcoffset(self, dt):

        return datetime.timedelta(hours=self._offset)

 

    def tzname(self, dt):

        return "UTC +%s" % self._offset

 

    def dst(self, dt):

        return datetime.timedelta(hours=self._offset)

 

#北京时间

beijing = datetime.datetime.now(tz = UTC(8))

 

#曼谷时间

bangkok = datetime.datetime.now(tz = UTC(7))

 

#北京时间转成曼谷时间

beijing.astimezone(UTC(7))

#计算时间差时也会考虑时区的问题

print(beijing, bangkok)

timespan = beijing - bangkok

print(timespan)

结果输出如下:

2015-10-27 00:44:05.520355+08:00 2015-10-27 00:44:05.520355+07:00

-1 day, 23:00:00

 

class datetime.timezone 

一个实现datetime.tzinfo接口的派生类,主要用来管理UTC时区。

例子:

#python 3.4.3

import datetime

 

tz = datetime.timezone(datetime.timedelta(hours = 8), ‘UTCsHH:MM‘)

print(tz.utc)

print(tz.tzname)

结果输出如下:

UTC+00:00

<built-in method tzname of datetime.timezone object at 0x029AB280>

 

上面所有类型的对象都是不修改的对象,其对象的派生关系如下:

object

    timedelta

    tzinfo

        timezone

    time

    date

        datetime

从这里可以看到所有类都派生于对象objecttimezone派生于tzinfo类,datetime派生于timedate类。


蔡军生  QQ:9073204 深圳

版权声明:本文为博主原创文章,未经博主允许不得转载。

5. 数据类型库

标签:python   milang   datetime   

原文地址:http://blog.csdn.net/caimouse/article/details/49847185

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!