共计 2531 个字符,预计需要花费 7 分钟才能阅读完成。
datetime 模块用于是 date 和 time 模块的合集,datetime 有两个常量,MAXYEAR 和 MINYEAR,分别是 9999 和 1.
datetime 模块定义了 5 个类,分别是
1.datetime.date:表示日期的类
2.datetime.datetime:表示日期时间的类
3.datetime.time:表示时间的类
4.datetime.timedelta:表示时间间隔,即两个时间点的间隔
5.datetime.tzinfo:时区的相关信息
一、首先看一下 datetime.date 类:
date 类有三个参数,datetime.date(year,month,day),返回 year-month-day
方法:
1.datetime.date.ctime(), 返回格式如 Sun Apr 16 00:00:00 2017
2.datetime.date.fromtimestamp(timestamp), 根据给定的时间戮,返回一个 date 对象;datetime.date.today()作用相同
3.datetime.date.isocalendar(): 返回格式如 (year,month,day) 的元组,(2017, 15, 6)
4.datetime.date.isoformat():返回格式如 YYYY-MM-DD
5.datetime.date.isoweekday():返回给定日期的星期(0-6),星期一 =0,星期日 =6
6.datetime.date.replace(year,month,day):替换给定日期,但不改变原日期
7.datetime.date.strftime(format): 把日期时间按照给定的 format 进行格式化。
8.datetime.date.timetuple():返回日期对应的 time.struct_time 对象
time.struct_time(tm_year=2017, tm_mon=4, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=105, tm_isdst=-1)
9.datetime.date.weekday():返回日期的星期
python 中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24 小时制小时数(0-23)
%I 12 小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地 A.M. 或 P.M. 的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% % 号本身
二、看一下 datetime 的 time 类
time 类有 5 个参数,datetime.time(hour,minute,second,microsecond,tzoninfo), 返回 08:29:30
1.datetime.time.replace()
2.datetime.time.strftime(format): 按照 format 格式返回时间
3.datetime.time.tzname():返回时区名字
4.datetime.time.utcoffset():返回时区的时间偏移量
三、datetime 的 datetime 类
datetime 类有很多参数,datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]),返回年月日,时分秒
datetime.datetime.ctime()
datetime.datetime.now().date():返回当前日期时间的日期部分
datetime.datetime.now().time():返回当前日期时间的时间部分
datetime.datetime.fromtimestamp()
datetime.datetime.now():返回当前系统时间
datetime.datetime.replace()
datetime.datetime.strftime():由日期格式转化为字符串格式
datetime.datetime.now().strftime('%b-%d-%Y %H:%M:%S')
'Apr-16-2017 21:01:35'
datetime.datetime.strptime(): 由字符串格式转化为日期格式
datetime.datetime.strptime('Apr-16-2017 21:01:35', '%b-%d-%Y %H:%M:%S')
2017-04-16 21:01:35
四、datetime 的 timedelta 类
datetime.datetime.timedelta 用于计算两个日期之间的差值,例如:
>>> a=datetime.datetime.now()
>>> b=datetime.datetime.now()
>>> a
datetime.datetime(2017, 4, 16, 21, 21, 20, 871000)
>>> b
datetime.datetime(2017, 4, 16, 21, 21, 29, 603000)
>>> b-a
datetime.timedelta(0, 8, 732000)
>>> (b-a).seconds
8
或者
time1 = datetime.datetime(2016, 10, 20)
time2 = datetime.datetime(2015, 11, 2)
""" 计算天数差值 """
print(time1-time2).days
""" 计算两个日期之间相隔的秒数 """
print (time1-time2).total_seconds()
