一、time模块
time是python处理时间数据的标准库。
导入语法:
import time
time模块中三种时间表示方式:时间戳、结构化时间对象、格式化时间字符串
1.time.time()时间戳
import time
print(time.time())
输出:
1695257700.7036572
2.time.gmtime()结构化时间对象
属性 |
说明 |
tm_year |
年 |
tm_mon |
月 |
tm_mday |
日 |
tm_hour |
时 |
tm_min |
分 |
tm_sec |
秒 |
tm_wday |
周 |
tm_yday |
一年内第几天 |
tm_isdst |
夏令时 |
import time
print(time.gmtime())
输出:
time.struct_time(tm_year=2023, tm_mon=9, tm_mday=21, tm_hour=0, tm_min=56, tm_sec=31, tm_wday=3, tm_yday=264, tm_isdst=0)
函数返回的值还可以使用索引或者变量继续获取内部的变量。
import time
print(time.gmtime()[0])
print(time.gmtime().tm_year)
输出:
2023
2023
3.time.localtime():获取当地时间
import time
print(time.localtime())
输出:
time.struct_time(tm_year=2023, tm_mon=9, tm_mday=22, tm_hour=8, tm_min=52, tm_sec=8, tm_wday=4, tm_yday=265, tm_isdst=0)
4.格式化时间的字符串
time.ctime():获取当前时间并以易读的方式返回字符串。
import time
print(time.ctime())
输出:
Fri Sep 22 08:53:19 2023
time.strftime():格式化日期返回可读字符串表示当地时间
格式化字符串 |
日期/时间说明 |
实例 |
%Y |
年份 |
0000-9999,例如:2023 |
%m |
月份 |
01-12,例如:9 |
%B |
月份名称 |
例如:September |
%b |
月份名称缩写 |
例如:Sep |
%d |
日期 |
01-31例如:22 |
%A |
星期 |
例如:Wednesday |
%a |
星期缩写 |
例如:Wed |
%H |
小时(24小时制) |
00-23例如:12 |
%I |
小时(12小时制) |
01-12例如:7 |
%p |
上\下午 |
AM\PM 例如:PM |
%M |
分钟 |
00-59例如10 |
%S |
秒 |
00-59例如:20 |
%w |
星期几 |
1-7例如:7 |
%W |
整年的第几周 |
1-52 例如:2 |
代码示例如下:
import time
print(time.strftime('%Y-%m-%d %H:%M:%S'))
print(time.strftime('%Y年%m月%d日 %H时%M分%S秒'))
输出:
2023-09-22 09:04:11
2023年09月22日 09时04分11秒
strptime(str,format):格式化指定时间字符串
import time
time_str = '2023-09-22 09:08:20'
print(time.strptime(time_str, '%Y-%m-%d %H:%M:%S'))
输出:
time.struct_time(tm_year=2023, tm_mon=9, tm_mday=22, tm_hour=9, tm_min=8, tm_sec=20, tm_wday=4, tm_yday=265, tm_isdst=-1)
5.计数函数
time.sleep(num):可以让该线程睡眠num秒。
import time
print(time.strftime('%Y-%m-%d %H:%M:%S'))
# 睡眠2秒
time.sleep(2)
print(time.strftime('%Y-%m-%d %H:%M:%S'))
输出:
2023-09-22 09:11:34
2023-09-22 09:11:36
二、datetime模块
1.datetime.date类
常用的属性和方法如下图所示:
函数/属性 |
说明 |
today() |
返回当地的当前日期 |
fromtimestamp(timestamp) |
根据给定的时间戳,返回本地日期 |
year |
年 |
month |
月 |
day |
日 |
weekday() |
返回一个整数代表星期几(0:星期一 6:星期天) |
isoformat() |
返回格式如YYYY-MM-DD格式化时间字符串 |
strftime(format) |
返回自定义格式字符串 |
代码实例如下:
import datetime
import time
# 返回本地日期
print(datetime.date.today())
# 根据给定的时间戳 返回本地日期
print(datetime.date.fromtimestamp(time.time()))
# 年
print(datetime.date.today().year)
# 返回星期
print(datetime.date.today().weekday())
# 返回格式化日期
print(datetime.date.today().isoformat())
print(datetime.date.today().strftime('%Y年%m月%d日 %H时%M分%S秒'))
输出:
2023-09-22
2023-09-22
2023
4
2023-09-22
2023年09月22日 00时00分00秒
2.datetime.time类
常用的属性和方法如下图所示:
方法/属性 |
说明 |
hour |
时 |
minute |
分 |
second |
秒 |
代码实例如下:
import datetime
t = datetime.time(9,36,50,888888)
print(t.hour)
print(t.minute)
print(t.second)
输出:
9
36
50
3.datetime.datetime类
常用方法和属性如下图所示:
函数/方法 |
说明 |
today() |
返回当地的当前时间 |
now(tz=None) |
类似于today(),可选参数tz可指定时区 |
utcnow() |
类似于now(),返回当前UTC时间 |
fromtimestamp(时间戳) |
根据时间戳返回对应时间 |
strptime(字符串,format) |
根据字符串返回时间 |
combine(date,time) |
根据date和time返回对应时间 |
代码示例如下:
import datetime
import time
print(datetime.datetime.today())
print(datetime.datetime.now(tz=None))
print(datetime.datetime.utcnow())
print(datetime.datetime.fromtimestamp(time.time()))
print(datetime.datetime.strptime('2023-09-22 10:20:30','%Y-%m-%d %H:%M:%S'))
print(datetime.datetime.combine(datetime.date(2023,9,22),datetime.time(10,25,30)))
输出:
2023-09-22 09:47:02.150541
2023-09-22 09:47:02.150541
2023-09-22 01:47:02.150541
2023-09-22 09:47:02.150541
2023-09-22 10:20:30
2023-09-22 10:25:30
三、calendar模块
month(year,month):返回一个月的日历多行文本字符串。
import calendar
print(calendar.month(2023, 9))
输出:
September 2023
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
isleap(year):判断指定是否是闰年,闰年为True,否则为False
import calendar
print(calendar.isleap(2023))
输出:
False
weekday(year,month,day):获取指定日期为星期几
import calendar
print(calendar.weekday(2023,9,23))
输出:
5