datetime模块定义了以下几个类:
datetime.date: 表示日期的类,常用的属性有year, month, day;
datetime.time: 表示时间的类,常用的属性有hour, minute, second, microsecond;
datetime.datetime: 表示日期时间的类
datetime.timedelta: 表示时间间隔,即两个时间点之间的长度
datetime.tzinfo: 与时区有关的信息
date类:
date类表示一个日期(年、月、日)
date类定义了一些常用的类方法和类属性:
date.max date.min: date对象所能表示的最大、最小日期;
date.resolution: date对象表示日期的最小单位,这里是天;
date.today(): 返回一个表示当前本地时间的date对象;
date.fromtimestamp(timestamp): 根据给定的时间戳,返回一个date对象;
example:
date.fromtimestamp(time.time())
date提供的实例方法和属性:
date.year date.month date.day: 年、月、日
date.replace(year, month, day): 生成一个新的日期对象,用参数指定的年月日代替原有对象中的属性(原有对象扔保持不变)
date.timetuple(): 返回日期对应的time.struct_time对象;
date.toordinal(): 返回日期对应的Gregorian Calendar日期;
date.weekday(): 返回weekday,如果是星期一返回0,如果是星期二返回1等等
date.isoweekday(): 返回weekday,如果是星期一返回1,如果是星期二返回2等等
date.isocalendar(): 返回格式如(year, month, day)的元祖
date.isoformat(): 返回格式如"YYYY-MM-DD"的字符串
date.strftime(fmt): 自定义格式化字符串
example:
now = date(2017,9,3)
tomorrow = now.replace(day=10)
now.timetuple()
now.weekday()
now.isoweekday()
now.isocalendar()
now.isoformat()
date还对某些操作进行了重载,它允许我们对日期进行一些操作:
date2 = date1 + timedelta: 日期加上一个时间间隔,返回一个新的日期对象
date2 = date1 - timedelta: 日期减去一个时间间隔,返回一个新的日期对象
timedelta = date2 - date1: 两个日期相减,返回一个时间间隔对象,以天为单位
date1 < date2: 两个日期进行比较
example:
now = date.today()
next_month = now.replace(month=10)
delta = next_month-now
now + delta
now < next_month
time类:
time类表示时间,由时、分、秒、微秒组成
time类定义的类属性和类方法:
time.min time.max: time类所能表示的最小、最大时间;
time.resolution: 时间的最小单位,这里是1微秒;
time类提供的实例方法和属性:
time.hour time.minute time.second time.microsecond: 时、分、秒、微秒
time.tzinfo: 时区信息
time.replace([hour[,minute[,second[,microsecond[,tzinfo]]]]]): 创建一个新的时间对象,用参数指定代替原有对象中的属性(原有对象仍保持不变)
time.isoformat(): 返回"HH:MM:SS"格式的字符串
time.strftime(fmt): 返回自定义格式化字符串
example:
tm = time(18,43,34)
tm.hour
tm.minute
tm.second
tm.microsecond
tm.isoformat()
tm2 = tm.replace(minute=20)
像date类一样,time;也可以对两个time对象进行比较、相加、相减或返回一个时间间隔
datetime类:
datetime是date与time的结合体,包括date和time的所有信息
datetime类定义了一些常用的类方法和类属性:
datetime.max datetime.min: datetime对象所能表示的最大、最小日期;
datetime.resolution: datetime对象表示日期的最小单位;
datetime.today(): 返回一个表示当前本地时间的datetime对象;
datetime.now([tz]): 返回一个表示当前本地时间的datetime对象,如果指定了tz,则获取tz参数所指定时区的本地时间;
datetime.utcnow(): 返回一个当前UTC时间的datetime对象;
datetime.fromtimestamp(timestamp[,tz]): 根据给定的时间戳,返回一个datetime对象,参数tz指定时区信息;
datetime.utcfromtimestamp(timestamp): 根据时间戳创建一个datetime对象;
datetime.combine(date,time): 根据date和time创建一个datetime对象;
datetime.strptime(date_string, format): 将格式化字符串转换为datetime对象;
example:
datetime.max
datetime.min
datetime.resolution
datetime.now()
datetime.utcnow()
datetime.fromtimestamp(time.time())
datetime.utcfromtimestamp(time.time())
datetime类提供的实例方法和属性在date和time中已经出现过,使用方法相同:
datetime.[year|month|day|hour|minute|second|microsecond|tzinfo]
datetime.date(): 获取date对象
datetime.time(): 获取time对象
datetime.replace([year[,month[,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]]]]])
datetime.timetuple(): 返回日期时间对应的time.struct_time对象;
datetime.utctimetuple()
datetime.toordinal(): 返回日期对应的Gregorian Calendar日期时间
datetime.weekday()
datetime.isocalendar(): 返回格式如(year, month, day)的元祖
datetime.isoformat([sep]): 返回格式如"YYYY-MM-DD HH:MM:SS"的字符串
datetime.ctime(): 返回一个日期时间的C格式字符串
datetime.strftime(format)
example:
now = datetime.now()
now.date()
now.time()
tomorrow = now.replace(day=3)
now.timetuple()
now.toordinal()
now.weekday()
now.isoweekday()
now.isocalendar()
now.isoformat()
now.ctime()
timedelta类:
timedelta对象代表两个时间之间的时间差,两个date或datetime对象相加减可以返回一个timedelta对象
class timedelta([days,[second[,microsecond[,milliseconds[,minutes[,hours[,weeks]]]]]]])
内部只存储days, seconds, microseconds
example:
now = datetime.now()
now + timedelta(days=365)
now + timedelta(days=1)
now + timedelta(weeks=1)
now + timedelta(hours=3)
now + timedelta(minutes=10)
now + timedelta(seconds=10)
格式化字符串:
%a: 星期的简写,如:Wed
%A: 星期的全写,如:Wednesday
%b: 月份的简写,如:Apr
%B: 月份的全写,如:April
%c: 日期时间的字符串表示,如:'Sat Sep 2 19:42:03 2017'
%d: 日在这个月中的天数(是这个月的第几天)
%f: 微秒
%H: 小时,24小时制
%I: 小时,12小时制
%j: 日在年中的天数[001,366](是当年的第几天)
%m: 月份
%M: 分钟
%p: AM或者PM
%S: 秒,范围[00,61]
%U: 周在当年的周数,当年的第几周,星期天作为周的第一天
%w: 今天在这周的天数,范围[0,6],0表示星期天
%W: 周在当年的周数,当年的第几周,星期一作为周的第一天
%x: 日期字符串,如:04/07/10
%X: 时间字符串,如:10:14:23
%y: 2个数字表示的年份
%Y: 4个数字表示的年份
%z: 与UTC时间的间隔
%Z: 时区名称
example:
dt = datetime.now()
dt.strftime("%Y-%m-%d %H:%M:%S %f")
dt.strftime("%y-%m-%d %I:%M:%S %p")
dt.strftime("%c")
dt.strftime("%x")
dt.strftime("%X")
dt.strftime("%a")
dt.strftime("%A")
dt.strftime("%j")
dt.strftime("%U")