Python中日期时间处理模块有calendar和time还有datetime模块,常用操作如下:
时间间隔是以秒为单位的浮点小数。
每个时间戳都以自从 1970 年 1 月 1 日午夜(历元)经过了多长时间来表示。
视频教程参看:http://www.wanmait.com/course/python/4876a169bcb9445aba9b52d12c3908b3.html
time模块
import time # 引入time模块 ticks = time.time() print ("当前时间戳为:", ticks)
time.time()返回的是一个浮点数,秒。
使用 time.localtime(time.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是决定是否为夏令时的旗帜(wanmait.com) |
struct_time()函数可以通过指定参数构成元组对应的属性为:
time.struct_time( tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=28, tm_sec=49, tm_wday=3, tm_yday=98, tm_isdst=0)
序号 | 属性 | 值 |
---|---|---|
0 | tm_year | 2008 |
1 | tm_mon | 1 到 12 |
2 | tm_mday | 1 到 31 |
3 | tm_hour | 0 到 23 |
4 | tm_min | 0 到 59 |
5 | tm_sec | 0 到 61 (60或61 是闰秒) |
6 | tm_wday | 0到6 (0是周一) |
7 | tm_yday | 一年中的第几天,1 到 366 |
8 | tm_isdst | 是否为夏令时(wanmait.com),值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1 |
格式化时间函数:
time.asctime( time.localtime(time.time()) )#Tue Dec 22 09:19:09 2020 time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #'2020-12-22 09:20:09'
格式化符号:
%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 当前时区的名称
%% %号本身
time模块更多函数:
time.perf_counter()# 322.3665765 #返回系统运行时间 time.process_time()#0.125 #返回进程运行时间 time.sleep(secs)#休眠secs秒 time.strptime(str,fmt='%a %b %d %H:%M:%S')#将时间字符串按照指定格式转换成时间元组(wanmait.com) 与time.strftime()函数互逆
Calendar模块
获取日历:
import calendar cal = calendar.month(2020, 12) print (cal) #结果 December 2020 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
calendar.prcal(2020,m=2) #prcal(year, w=0, l=0, c=6, m=3): 打印一年的日历,w每个单元格宽度,默认0,内部已做处理,最小宽度为2,l每列换l行,默认为0, 内部已做处理,至少换行1行,c表示月与月之间的间隔宽度,默认为6,内部已做处理,最小宽度为2,m表示将12个月分为m列 2020 January February Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 1 2 6 7 8 9 10 11 12 3 4 5 6 7 8 9 13 14 15 16 17 18 19 10 11 12 13 14 15 16 20 21 22 23 24 25 26 17 18 19 20 21 22 23 27 28 29 30 31 24 25 26 27 28 29 March April Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 1 2 3 4 5 2 3 4 5 6 7 8 6 7 8 9 10 11 12 9 10 11 12 13 14 15 13 14 15 16 17 18 19 16 17 18 19 20 21 22 20 21 22 23 24 25 26 23 24 25 26 27 28 29 27 28 29 30 30 31 May June Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 1 2 3 4 5 6 7 4 5 6 7 8 9 10 8 9 10 11 12 13 14 11 12 13 14 15 16 17 15 16 17 18 19 20 21 18 19 20 21 22 23 24 22 23 24 25 26 27 28 25 26 27 28 29 30 31 29 30 July August Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 1 2 6 7 8 9 10 11 12 3 4 5 6 7 8 9 13 14 15 16 17 18 19 10 11 12 13 14 15 16 20 21 22 23 24 25 26 17 18 19 20 21 22 23 27 28 29 30 31 24 25 26 27 28 29 30 31 September October Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 1 2 3 4 7 8 9 10 11 12 13 5 6 7 8 9 10 11 14 15 16 17 18 19 20 12 13 14 15 16 17 18 21 22 23 24 25 26 27 19 20 21 22 23 24 25 28 29 30 26 27 28 29 30 31 November December Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 1 2 3 4 5 6 2 3 4 5 6 7 8 7 8 9 10 11 12 13 9 10 11 12 13 14 15 14 15 16 17 18 19 20 16 17 18 19 20 21 22 21 22 23 24 25 26 27 23 24 25 26 27 28 29 28 29 30 31 30
calendar.isleap(year)#判断是否闰年 calendar.leapdays(y1,y2)#返回在Y1,Y2两年之间的闰年总数。 calendar.monthrange(year,month)#返回两个整数。第一个是该月的星期几,第二个是该月有几天。星期几是从0(星期一)到 6(星期日)。 calendar.setfirstweekday(weekday)#设置每周的起始日期码。0(星期一)到6(星期日)。 calendar.weekday(year,month,day)#返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。
datetime模块有关操作
常用时间处理方法
今天
today = datetime.date.today() #2020-12-22
昨天
yesterday = today - datetime.timedelta(days=1)
上个月
last_month = today.month - 1 if today.month - 1 else 12
时间戳转datetime
datetime.datetime.fromtimestamp(time.time())
datetime转时间戳
int(time.mktime(today.timetuple()))
datetime转字符串
today_str = today.strftime("%Y-%m-%d")
字符串转datetime
today = datetime.datetime.strptime(today_str, "%Y-%m-%d")
补时差
today + datetime.timedelta(hours=8)
视频教程参看:http://www.wanmait.com/course/python/4876a169bcb9445aba9b52d12c3908b3.html
0条评论
点击登录参与评论