Python中time和datetime模块
1、time模块
time模块时间的格式有三种:
- **timestamp:**时间戳,格林时间1970年1月1日开始秒的偏移量。
- **struct_time:**时间元组,共9个元素
- **format_time:**格式化时间,具有可读性,包括自定义格式和固定格式
1、时间格式转换规则
2、主要time方法和time格式转换
1、生成timestamp
print(time.time())
print(time.mktime(time.localtime()))
2、生成struct_time
print(time.localtime())
print(time.localtime(time.time()))
print(time.strptime('2018-07-01 23:21:09', '%Y-%m-%d %X'))
生成format_time
print(time.strftime('%x %X'))
print(time.strftime('%x %X', time.localtime()))
固定格式的时间表示格式
print(time.ctime(time.time()))
print(time.asctime(time.localtime()))
struct_time元组的结构
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=1, tm_hour=2, tm_min=22, tm_sec=2, tm_wday=6, tm_yday=182, tm_isdst=0)
- tm_year (年)
- tm_mon (月)
- tm_mday (日)
- tm_hour (时)
- tm_min (分)
- tm_sec (秒)
- tm_wday (星期几)
- tm_yday (第几天)
format time结构化表示
%Y | 完整的年份 | |
---|---|---|
%y | 去掉世纪的年份(00 - 99) | |
%X | 本地相应时间 | |
%x | 本地相应日期 | |
%w | 一个星期中的第几天(0 - 6,0是星期天) | |
%S | 秒(01 - 61) | |
%M | 分钟数(00 - 59) | |
%m | 月份(01 - 12) | |
%j | 一年中的第几天(001 - 366) | |
%I | 第几个小时(12小时制,01 - 12) | |
%H | 一天中的第几个小时(24小时制,00 - 23) | |
%d | 一个月中的第几天(01 - 31) | |
%c | 本地相应的日期和时间表示 | |
常见的结构化时间:
print(time.strftime("%Y-%m-%d %X"))
2、datetime模块
提供的类有:date,time,datetime,timedelta,tzinfo
1、date类:datetime.date(year, month, day)
方法和字段
date.max、date.min:date对象所能表示的最大、最小日期;
date.resolution:date对象表示日期的最小单位。这里是天。
date.today():返回一个表示当前本地日期的date对象;
date.fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象;
2、time类:datetime.time(hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] )
time.min、time.max:time类所能表示的最小、最大时间。
time.min = time(0, 0, 0, 0), time.max = time(23, 59, 59, 999999);
time.resolution:时间的最小单位,这里是1微秒;
3、datetime类:相当date和time结合起来
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对象;
4、timedelta类,时间加减
日期上做天days,小时hour,分钟,秒,毫秒,微妙的时间计算。
timedelta(days=1)
timedelta(days=-1)