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

    [原]5.1.3 date对象

    caimouse发表于 2015-11-20 22:23:25
    love 0

    类date对象表示一个理想的日历里的一天日期(年,月和日)。

    class datetime.date(year, month, day)

    在构造对象时所有参数都必须输入。所有参数都采用整数表示,并且只能在下面范围之间:

    l MINYEAR <= year <= MAXYEAR

    l 1 <= month <= 12

    l 1 <= day <= 小于给出年和月的总天数

    如果参数超出范围,就会抛出异常ValueError。

     

    classmethod date.today() 

    返回当前日期对象,相当于date.fromtimestamp(time.time())。

    例子:

    #python 3.4.3

    import datetime

     

    dt = datetime.date.today()

    print(dt)

    结果输出如下:

    2015-11-03

     

    classmethod date.fromtimestamp(timestamp) 

    从POSIX时间返回当前日期,比如从time.time()函数获取得当前日期。如果超出当前表示日期范围,抛出异常OverflowError。

    例子:

    #python 3.4.3

    import datetime

    import time

     

    dt = datetime.date.fromtimestamp(time.time())

    print(dt)

    结果输出如下:

    2015-11-03

     

    classmethod date.fromordinal(ordinal) 

    从一个整数的天数转换为日期。

    例子:

    #python 3.4.3

    import datetime

    import time

     

    dt = datetime.date.fromordinal(1)

    print('1:', dt)

    dt = datetime.date.fromordinal(10000)

    print('1000:', dt)

    dt = datetime.date.fromordinal(735900)

    print('735900:', dt)

    结果输出如下:

    1: 0001-01-01

    1000: 0028-05-18

    735900: 2015-10-29

     

    date.min 

    日期对象能表示最小的日期。

    例子:

    #python 3.4.3

    import datetime

    import time

     

    print(datetime.date.min)

    结果输出如下:

    0001-01-01

     

    date.max 

    日期对象表示最后一天,相当于date(MAXYEAR, 12, 31)。

    例子:

    #python 3.4.3

    import datetime

    import time

     

    print(datetime.date.max)

    结果输出如下:

    9999-12-31

     

    date.resolution 

    date对象表示最小分隔的时间,相当于timedelta(days=1)。

    例子:

    #python 3.4.3

    import datetime

    import time

     

    print(datetime.date.resolution)

    结果输出如下:

    1 day, 0:00:00

     

    date.year 

    年份,范围在MINYEAR和MAXYEAR之间。

    date.month 

    月份,范围在1和12之间。

    date.day 

    天数1和给出月份天数之间。

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date.today()

    print(to.year)

    print(to.month)

    print(to.day)

    结果输出如下:

    2015

    11

    3

     

    日期与时间变量相加date2 = date1 + timedelta

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date.today()

    t3 = datetime.timedelta(days = 1, microseconds = 8)

    print(to)

    to = to + t3

    print(to)

    结果输出如下:

    2015-11-03

    2015-11-04

     

    日期与时间变量相减date2 = date1 - timedelta

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date.today()

    t3 = datetime.timedelta(days = 1, microseconds = 8)

    print(to)

    to = to - t3

    print(to)

    结果输出如下:

    2015-11-03

    2015-11-02

     

    日期与日期之差timedelta = date1 - date2

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date.today()

    t1 = datetime.date(2015, 10, 10)

    print(to)

    to = to - t1

    print(to)

    结果输出如下:

    2015-11-03

    24 days, 0:00:00

     

    日期与日期进行比较大小date1 < date2

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date.today()

    t1 = datetime.date(2015, 10, 10)

    print('to > t1:', to > t1)

    结果输出如下:

    to > t1: True

     

    date.replace(year, month, day) 

    修改实例指定参数的成员变量,返回一个新日期对象。

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date.today()

    to1 = to.replace(year = 2016)

    print('to :', to)

    print('to1:', to1)

    结果输出如下:

    to : 2015-11-03

    to1: 2016-11-03

     

    date.timetuple() 

    返回一个time.struct_time对象,相当于time.localtime()。时、分、秒都默认为0。

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date.today()

    to1 = to.timetuple()

    print('to :', to)

    print('to1:', to1)

    结果输出如下:

    to : 2015-11-03

    to1: time.struct_time(tm_year=2015, tm_mon=11, tm_mday=3, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=307, tm_isdst=-1)

     

    date.toordinal() 

    返回日期实例的序数,主要从0年0月0日算起天数。

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date(1,12,31)

    to1 = to.toordinal()

    print('to :', to)

    print('to1:', to1)

    结果输出如下:

    to : 0001-12-31

    to1: 365

     

    date.weekday() 

    返回一周第几天,星期一为0,星期天为6.

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date(1,12,31)

    print('to :', to.weekday())

    to = datetime.date(2,12,31)

    print('to :', to.weekday())

    结果输出如下:

    to : 0

    to : 1

     

    date.isoweekday() 

    返回ISO标准的一周第几天,星期一表示为1,星期天表法为7.

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date(1,12,31)

    print('to :', to.isoweekday())

    to = datetime.date(2,12,31)

    print('to :', to.isoweekday())

    结果输出如下:

    to : 1

    to : 2

     

    date.isocalendar() 

    返回一个ISO标准的年、周、一周第几天的元组。

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date(1,12,31)

    print('to:', to)

    print('to.isocalendar :', to.isocalendar())

    结果输出如下:

    to: 0001-12-31

    to.isocalendar : (2, 1, 1)

     

    date.isoformat() 

    返回一个ISO8601标准的日期,一般是“YYYY-MM-DD”格式。

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date(1,12,31)

    print('to:', to)

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

    结果输出如下:

    to: 0001-12-31

    to.isoformat : 0001-12-31

     

    date.__str__() 

    对于date类型来说,str(d)相当于d.isoformat()。

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date(1,12,31)

    print('to:', to)

    print('to.__str__() :', to.__str__())

    结果输出如下:

    to: 0001-12-31

    to.__str__() : 0001-12-31

     

    date.ctime() 

    返回ctime格式表示的日期字符串。相当于time.ctime(time.mktime(d.timetuple))。

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date.today()

    print('to:', to)

    print('to.ctime() :', to.ctime())

    结果输出如下:

    to: 2015-11-04

    to.ctime() : Wed Nov  4 00:00:00 2015

     

    date.strftime(format) 

    指定格式字符format来格式化日期。时、分和秒都是显示为0值。具体格式字符的定义看后面相关章节。

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date.today()

    print('to:', to)

    print('to.strftime() :', to.strftime("%A %d. %B %Y"))

    结果输出如下:

    to: 2015-11-04

    to.strftime() : Wednesday 04. November 2015

     

    date.__format__(format) 

    实现strftime的格式化功能,如果更改格式化功能可以重载这个函数。

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date.today()

    print('to:', to)

    print('to.__format__() :', to.__format__("%A %d. %B %Y"))

    结果输出如下:

    to: 2015-11-04

    to.__format__() : Wednesday 04. November 2015

     

    在字符串里格式日期

    例子:

    #python 3.4.3

    import datetime

     

    to = datetime.date.today()

    print('to:', to)

    print('The {1} is {0:%d}, the {2} is {0:%B}.'.format(to, "day", "month"))

    结果输出如下:

    to: 2015-11-04

    The day is 04, the month is November.




    蔡军生  QQ:9073204  深圳



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