1. time模块
time模块的时间表示形式为时间元组struct_time,格式如下:
序号 | 字段 | 值 |
---|---|---|
0 | 4位数年 | 2008 |
1 | 月 | 1到12 |
2 | 日 | 1到31 |
3 | 小时 | 0到23 |
4 | 分钟 | 0到59 |
5 | 秒 | 0到61(60或61是闰秒) |
6 | 一周的第几日 | 0到6(0是周一) |
7 | 一年的第几日 | 1到366(儒略历) |
8 | 夏令时 | -1,0,1,-1是决定是否为夏令时的旗帜 |
(1) 时间戳转struct_time
1 2 3 4 |
import time time_stamp = 1562258144 struct_time = time.localtime(time_stamp) |
(2) struct_time转字符串
1 2 |
date_str = time.strftime("%Y-%m-%d %H:%M:%S", struct_time) |
(3) 字符串转struct_time
1 2 3 |
date_str = "30 Nov 00" struct_time = time.strptime(date_str, "%d %b %y") |
(4) struct_time转时间戳
1 2 |
time_stamp = time.mktime(struct_time) |
(5) 获取当前时间戳
1 2 |
current_stamp = time.time() |
2. datetime模块
该模块包含3个类用于保存时间:
* datetime.date(year, month, day)
* datetime.time(hour, minute, second, microsecond, tzinfo)
* datetime.datetime(year, month, day, hour, minute, second, microsecond, tzinfo)
还有个类用于改变时间:
* datetime.timedelta
(1) 时间戳转date/datetime
1 2 3 4 5 |
import datetime time_stamp = 1562258144 d = datetime.date.fromtimestamp(time_stamp) dt = datetime.datetime.fromtimestamp(time_stamp) |
(2) date/datetime转time.struct_time
1 2 |
struct_time = dt.timetuple() |
(3) date/datetime转字符串
1 2 |
date_str = dt.strftime("%a %b %d %H:%M:%S %Y") |
(4) 字符串转date/datetime
1 2 3 |
date_str = "30 Nov 00" dt = datetime.datetime.strptime(date_str, "%d %b %y") |
(5) date/datetime转时间戳
1 2 |
time_stamp = dt.timestamp() |
(6) 获取当前date/datetime
1 2 |
dt = datetime.datetime.now() |
(7) 调整时间
1 2 3 |
new_dt = dt + datetime.timedelta(days=-6) new_dt = dt - datetime.timedelta(hours=8) |
附录:
* %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 当前时区的名称
* %% %号本身
109 Replies to “Python3 对时间的操作”