Python:datetime模块使用

#!/usr/bin/env python
# coding:UTF-8


"""
@version: python3.x
@author:曹新健
@contact: [email protected]
@software: PyCharm
@file: datetime模块.py
@time: 2018/11/15 15:35
"""

import datetime,time
"""
python中的datetime模块提供了五种核心对象:datetime(时间日期类型), date(日期类型), 
time(时间类型), tzinfo(时区类型), timedelta(时间差类型)
一、datetime.datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
    1、在实例化datetime对象时,year, month, day是必填项,hour, minute, second, microsecond(微秒),
    tzinfo(时区)是可选项
        代码示例:
        birthday = datetime.datetime(year=1987,month=4,day=13)
        print(birthday)
        #打印1987-04-13 00:00:00
    2、datetime.datetime.now():返回当前系统时间
    3、datetime.datetime.now().date():返回当前日期时间的日期部分
    4、datetime.datetime.now().time():返回当前日期时间的时间部分
    5、datetime.datetime.fromtimestamp(timestamp),根据给定的时间戮,返回一个date对象;
    datetime.date.today()作用相同
    6、datetime.datetime.strftime():由日期格式转化为字符串格式
    7、datetime.datetime.strptime():由字符串格式转化为日期格式
    代码示例:
    print(datetime.datetime(year=1987,month=4,day=13))
    #1987-04-13 00:00:00
    print(datetime.datetime.now())
    #2018-11-15 16:14:17.069494
    print(datetime.datetime.fromtimestamp(time.time()))
    #2018-11-15 16:14:17.069494
    print(datetime.datetime.now().strftime('%Y-%m-%d %X'))
    #2018-11-15 16:14:17
    print(datetime.datetime.strptime('Apr-20-2018 16:08:08', '%b-%d-%Y %H:%M:%S'))
    #2018-04-20 16:08:08
二、datetime.date(year,month,day),返回year-month-day
    1、date对象和datetime对象的区别在于,date对象只能表示日期,不能表示时间(即其精确度为天)。
    date实例化时须要且仅须要三个参数:year, month, day。date对象是没有时区(tzinfo)属性的。
    2、datetime.date.fromtimestamp(timestamp),根据给定的时间戮,返回一个date对象;
    datetime.date.today()作用相同
    3、datetime.date.isocalendar():返回格式如(year,month,day)的元组,(2018, 11, 15)
    4、datetime.date.isoformat():返回格式如YYYY-MM-DD
    5、datetime.date.isoweekday():返回日期的星期
    6、datetime.date.replace(year,month,day):替换给定日期,但不改变原日期
    7、datetime.date.strftime(format):把日期时间按照给定的format进行格式化
    8、datetime.date.timetuple():返回日期对应的time.struct_time对象
    9、datetime.date.weekday():返回给定日期的星期(0-6),星期一=0,星期日=6
    代码示例:
    print(datetime.date.fromtimestamp(time.time()))
    #2018-11-15
    print(datetime.date.isocalendar(datetime.datetime.now()))
    #(2018, 46, 4)
    print(datetime.date.isoformat(datetime.datetime.now()))
    #2018-11-15
    print(datetime.date.isoweekday(datetime.datetime.now()))
    #4
    print(datetime.date.replace(datetime.datetime.now().date(),2018,10,15))
    #2018-10-15
    print(datetime.date.strftime(datetime.datetime.now(),"%Y-%m-%d %X"))
    #2018-11-15 16:29:28
    print(datetime.date.timetuple(datetime.datetime.now()))
    #time.struct_time(tm_year=2018, tm_mon=11, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=319, tm_isdst=-1)
    print(datetime.date.weekday(datetime.datetime.now()))
    #3
三、datetime.time(hour,minute,second,microsecond,tzoninfo)
    1、和date对象相反,time对象只能用来表示时间,而不能用来表示日期。time对象所表示的时间可以精确到
    微秒,而且可以具有时区(tzinfo)属性。
    2、datetime.time.replace()
    3、datetime.time.strftime(format):按照format格式返回时间
    4、datetime.time.tzname():返回时区名字
    5、datetime.time.utcoffset():返回时区的时间偏移量
    示例代码:
    print(datetime.time.replace(datetime.time(16,36,1,1),2,4,5))
    #02:04:05.000001
    print(datetime.time.strftime(datetime.time(16,36,1,1),"%X"))
    #16:36:01
    print(datetime.time.tzname(datetime.time(16,36,1,1,datetime.timezone.utc)))
    #UTC
    print(datetime.time.utcoffset(datetime.time(16,36,1,1,datetime.timezone
    (offset=datetime.timedelta(hours=6),name="Asia/Beijing"))))
    #6:00:00
四、datetime.datetime.timedelta用于计算两个日期之间的差值
    timedelta对象表示一个时间段,timedelta对象可以通过手动实例化得到,也可以通过上述三个对象
    (datetime, date, time)相减得到。
    手动实例化timedelta时,可以传入的参数有:days, seconds, microseconds, milliseconds, minutes,
    hours, weeks
    代码示例:
    now = datetime.datetime.now()
    last = datetime.datetime(year=1987,month=4,day=13,hour=8)
    delta = now - last
    print(delta)
    #11539 days, 8:54:23.708372
    
五、tzinfo对象
    tzinfo对象是用来表示该时区相对UTC时间差值,和该地区是否执行夏时令的对象。datetime模块所提供的
    的tzinfo对象是一个抽象基类,也就是说我们不应该直接实例化此对象, 而应该以此类为基类,定义出子
    类,然后再实例化以供使用。在子类化的时候,需要自定义很多方法,非常繁琐。还好python提供了一个
    pytz的库,里面自带了适合各个国家和时区的tzinfo对象,我们可以直接使用。

"""




猜你喜欢

转载自blog.csdn.net/caoxinjian423/article/details/84196588