一、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