Python时间日历就简单介绍几个关于时间的模块。
time模块
time模块主要提供了处理时间和表示之间的相关功能 。
1.获得时间戳(从0时区的1970年1月1日0时0分0秒, 到所给定日期时间的秒数)
import time
t = time.time()
print(t) # 1669539989.598222
2.获取时间元组(很多Python时间函数将时间处理9个数字的元组)
# localtime([seconds]) # seconds可选的时间戳,默认为当前时间戳
import time
t = time.localtime()
print(t)
'''
结果演示:
time.struct_time(tm_year=2022, tm_mon=11, tm_mday=27, tm_hour=17, tm_min=11, tm_sec=27, tm_wday=6, tm_yday=331, tm_isdst=0)
'''
上述结果中各字段说明如下图:
3. 获取格式化时间
秒 -> 可读时间
# time.ctime([seconds]) seconds可选时间戳,默认为当前时间戳
import time
print(time.ctime()) # Tue Nov 29 12:43:29 2022
时间元组 -> 可读时间
# time.asctime([p_tuple]) p_tuple为可选时间元组,默认为当前时间元组
import time
print(time.asctime()) # Tue Nov 29 12:46:38 2022
4.格式化日期字符串 <--> 时间戳
时间元组 -> 格式化日期
# time.strftime(格式字符串, 时间元组)
import time
result = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(result) # 2022-11-29 12:52:52
格式化日期 -> 时间元组
# time.strptime(日期字符串, 格式符字符串)
# 注意点:日期字符串的格式要与格式符字符串一一对应
import time
time_tuple = time.strptime("2022-11-29 12:56:00", "%Y-%m-%d %H:%M:%S")
print(tuple) # time.struct_time(tm_year=2022, tm_mon=11, tm_mday=29, tm_hour=12, tm_min=56, tm_sec=0, tm_wday=1, tm_yday=333, tm_isdst=-1)
# 将时间元组转换为时间戳
# time.mktime(时间元组)
print(time.mktime(time_tuple)) # 1669697760.0
常用格式符(比较多,了解一下,用的时候可以去查)
常用格式符
%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 当前时区的名称
%% %号本身
5. 获取当前CPU时间
# time.clock( )【Python3.8不支持clock,需要perf_counter()】
# 可用来统计一段程序代码执行耗时
import time
start = time.perf_counter()
for i in range(0, 1000):
print(i)
end = time.perf_counter()
print(end - start) # 0.005337000000000147
6.休眠n秒
# sleep(sec) 让程序过sec秒再执行
# 推迟线程的执行, 可简单理解为, 让程序暂停
import time
time.sleep(5)
print('hello Python!')
# 这个不好演示,点击运行上述代码,并不会立即输出hello Python!,而是会等5秒再执行,自己去试试
calendar 模块
提供与日历相关的功能,比如: 为给定的月份或年份打印文本日历的功能。
# 获取某月日历
import calendar
print(calendar.month(2022, 11))
'''
November 2022
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
'''
datetime 模块
这个模块里面有datetime类,此外常用的还有date类,以及time类,可以做一些计算之类的操作。
1.获取当天日期
import datetime
print(datetime.datetime.now())
print(datetime.datetime.today())
'''
2022-11-29 14:53:05.801012
2022-11-29 14:53:05.801013
'''
2.单独获取当前的年月日时分秒
'''
datetime对象里面的一些属性
year
month
day
hour
minute
second
'''
import datetime
t = datetime.datetime.now()
print(type(t)) # <class 'datetime.datetime'>
print(t.year) # 2022
print(t.month) # 11
print(t.day) # 29
print(t.hour) # 14
print(t.minute) # 58
print(t.second) # 23
3.计算n天之后的日期
import datetime
result = datetime.datetime.today() + datetime.timedelta(days = 7)
print(result) # 2022-12-06 14:59:02.318008
'''
timedelta()中的参数不仅仅可以设置days,还有其他的,如下:
days: float = ..., 天
seconds: float = ..., 秒
microseconds: float = ..., 微秒
milliseconds: float = ..., 毫秒
minutes: float = ..., 分钟
hours: float = ..., 小时
weeks: float = ..., 星期
都可以设置进行运算
'''
4. 获取两个日期时间的时间差
import datetime
# 计算离双十二还有多久
first = datetime.datetime.now()
second = datetime.datetime(2022, 12, 12, 0, 0, 0)
result = second - first
print(result) # 12 days, 0:54:30.135559
这个拖了好几天了,现在有唯一一个粉丝(我室友),不知道他会不会看到,隔离快乐(狗头)。