Python时间函数汇总
Python时间函数汇总
一、time模块
1、time.time()
import time
# 返回当前时间的时间戳,语法:time.time()
timestamp=time.time()
print(timestamp)
代码执行结果:
1640656106.2590778
2、time.localtime(timestamp)
import time
# 接收时间戳,返回当地时间下的时间元组,语法:time.localtime(timestamp)
timestamp=time.time()
tupletime=time.localtime(timestamp)
print(tupletime)
代码执行结果:
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=28, tm_hour=9, tm_min=49, tm_sec=34, tm_wday=1, tm_yday=362, tm_isdst=0)
参数说明:
tm_year 2008
tm_mon 1 到 12
tm_mday 1 到 31
tm_hour 0 到 23
tm_min 0 到 59
tm_sec 0 到 61 (60或61 是闰秒)
tm_wday 0到6 (0是周一)
tm_yday 一年中的第几天,1 到 366
tm_isdst 是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1
3、time.sleep(secs)
import time
# 推迟线程的运行,语法:time.sleep(secs)
print("one")
time.sleep(3) # 3s后执行下一条程序
print("two")
代码执行结果:
one
two
先打印出“one”,1s后再打印“two”。
4、time.strftime(fmt,tupletime)
import time
# 接受时间元组,格式化输出时间,语法:time.strftime(fmt,tupletime)
format_time=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
print(format_time)
代码执行结果:
2021-12-28 09:57:00
5、time.strptime(format_time,fmt)
import time
# 将格式化的时间解析为时间元组,可以理解为time.strftime()的逆运算,语法:time.strptime(format_time,fmt)
tupletime=time.strptime("2021-12-28 09:59:17","%Y-%m-%d %H:%M:%S")
print(tupletime)
代码执行结果:
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=28, tm_hour=9, tm_min=59, tm_sec=17, tm_wday=1, tm_yday=362, tm_isdst=-1)
二、calendar模块
1、calendar.calendar(year)
import calendar
# 打印指定年份的日历,语法:calendar.calendar(year)
print(calendar.calendar(2021))
代码执行结果:
2021
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 2 3 4 5 6 7 1 2 3 4 5 6 7
4 5 6 7 8 9 10 8 9 10 11 12 13 14 8 9 10 11 12 13 14
11 12 13 14 15 16 17 15 16 17 18 19 20 21 15 16 17 18 19 20 21
18 19 20 21 22 23 24 22 23 24 25 26 27 28 22 23 24 25 26 27 28
25 26 27 28 29 30 31 29 30 31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 1 2 1 2 3 4 5 6
5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13
12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20
19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27
26 27 28 29 30 24 25 26 27 28 29 30 28 29 30
31
July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 1 1 2 3 4 5
5 6 7 8 9 10 11 2 3 4 5 6 7 8 6 7 8 9 10 11 12
12 13 14 15 16 17 18 9 10 11 12 13 14 15 13 14 15 16 17 18 19
19 20 21 22 23 24 25 16 17 18 19 20 21 22 20 21 22 23 24 25 26
26 27 28 29 30 31 23 24 25 26 27 28 29 27 28 29 30
30 31
October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 2 3 4 5 6 7 1 2 3 4 5
4 5 6 7 8 9 10 8 9 10 11 12 13 14 6 7 8 9 10 11 12
11 12 13 14 15 16 17 15 16 17 18 19 20 21 13 14 15 16 17 18 19
18 19 20 21 22 23 24 22 23 24 25 26 27 28 20 21 22 23 24 25 26
25 26 27 28 29 30 31 29 30 27 28 29 30 31
2、calendar.month(year,month)
import calendar
# 打印指定的某一年某一月的日历,语法:calendar.month(year,month)
print(calendar.month(2021,12))
代码执行结果:
December 2021
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
3、calendar.isleap(year)
import calendar
# 判断指定年份是否是闰年,是闰年返回True,不是闰年返回False,语法:calendar.isleap(year)
print(calendar.isleap(2020))
代码执行结果:
True
4、calendar.leapdays(y1,y2)
import calendar
# 返回年份区间内闰年的总数,语法:calendar.leapdays(y1,y2)
print(calendar.leapdays(2000,2020))
代码执行结果:
5
5、calendar.monthcalendar(year, month)
import calendar
# 返回单层嵌套列表,每个子列表包含一个星期的日期。
# Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始,语法:calendar.monthcalendar(year, month)
print(calendar.monthcalendar(2021,12))
代码执行结果:
[[0, 0, 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, 0, 0]]
6、calendar.monthrange(year,month)
import calendar
# 返回两个整数,第一个是该月的星期几,第二个是该月有几天。星期几是从0(星期一)到 6(星期日),语法:calendar.monthrange(year,month)
print(calendar.monthrange(2021,12))
代码执行结果:
(2, 31)
7、calendar.weekday(year,month,day)
import calendar
# 返回给定日期的日期码0(星期一)~6(星期日),语法:calendar.weekday(year,month,day)
print(calendar.weekday(2021,12,28))
代码执行结果:
1
执行结果为1,表示2021-12-28是星期二。
三、datetime模块
1、datetime.date(year,month,day)
import datetime
# 返回year-month-day格式的日期,语法:datetime.date(year,month,day)
print(datetime.date(2021,12,28))
代码执行结果:
2021-12-28
2、datetime.date.today()
import datetime
# 获取当天日期,语法:datetime.date.today()
print(datetime.date.today())
代码执行结果:
2021-12-28
3、datetime.date(year,month,day).timetuple()
import datetime
# 返回对应的time.struct_time对象(类似于time模块的time.localtime()),语法:datetime.date(year,month,day).timetuple()
today=datetime.date(2021,12,27)
print(today.timetuple())
代码执行结果:
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=27, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=361, tm_isdst=-1)
4、datetime.date(year,month,day).weekday()
import datetime
# 返回 0 ~ 6 表示星期几(星期一是 0,依此类推),语法:datetime.date(year,month,day).weekday()
today=datetime.date(2021,12,28)
print(today.weekday())
代码执行结果:
1
执行结果为1,表示2021-12-28是星期二。
5、datetime.date(year,month,day).isoweekday()
import datetime
# 返回 1 ~ 7 表示星期几(星期一是1, 依此类推),语法:datetime.date(year,month,day).isoweekday()
today=datetime.date(2021,12,28)
print(today.isoweekday())
代码执行结果:
2
执行结果为2,表示2021-12-28是星期二。
6、datetime.date(year,month,day).isocalendar()
import datetime
# 返回一个三元组格式 (year, month, day),语法:datetime.date(year,month,day).isocalendar()
today=datetime.date(2021,12,28)
print(today.isocalendar())
代码执行结果:
(2021, 52, 2)
(2021, 52, 2)的含义是:2021年第52个星期的第2天。
7、datetime.date(year,month,day).ctime()
import datetime
# 输出ctime样式的日期格式,语法:datetime.date(year,month,day).ctime()
today=datetime.date(2021,12,27)
print(today.ctime())
代码执行结果:
Tue Dec 28 00:00:00 2021
8、datetime.datetime.now()
import datetime
# 返回当前本地日期时间,语法:datetime.datetime.now()
print(datetime.datetime.now())
代码执行结果:
2021-12-28 10:35:21.629215
9、datetime.datetime.now().utctimetuple()
import datetime
# 获取UTC时间元组,语法:datetime.datetime.now().utctimetuple()
now=datetime.datetime.now()
print(now.utctimetuple())
代码执行结果:
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=28, tm_hour=10, tm_min=36, tm_sec=58, tm_wday=1, tm_yday=362, tm_isdst=0)
四、补充计算年龄的函数
1、计算两个年份之间的年份差
import datetime
current_year=datetime.datetime.now().year
born_year=int(input("请输入您的出生年份:"))
print("您今年{}岁...".format(current_year.__sub__(born_year)))
代码执行结果:
请输入您的出生年份:1997
您今年24岁...
2、计算年龄,并计算距离下次过生日还有多长时间
import datetime
y = int(input("请输入您的出生年份:"))
m = int(input("请输入您的出生月份:"))
d = int(input("请输入您的出生日期:"))
birthday = datetime.date(y,m,d)
today = datetime.datetime.now().date()
age = (today-birthday).days//365
print("您今年{}岁...".format(age))
next_birthday = datetime.date(datetime.datetime.now().year+1,m,d)
sub_day = (next_birthday-today).days
month = sub_day//30
days = sub_day%30
print("距您下次过生日大约还有{}个月零{}天,共{}天!!!".format(month,days,sub_day))
代码执行结果:
请输入您的出生年份:1997
请输入您的出生月份:5
请输入您的出生日期:7
24
距您下次过生日大约还有4个月零10天,共130天!!!
更多推荐
所有评论(0)