全面掌握Python时间处理
- 游戏开发
- 2025-08-28 16:36:03

全面掌握Python时间处理
flyfish
datetime: 最适合处理日期和时间,支持创建时间对象、格式化时间、计算时间差等。time: 提供了获取时间戳、将时间戳转换为本地时间、暂停程序执行等功能。timeit: 主要用于性能测试,帮助开发者了解某段代码的执行效率。 基础知识在编程中,“时间”通常有两种主要形式:
时间点(Time Point):指某一特定时刻,如“2025年2月19日 11时17分”。时间段(Duration or Time Interval):表示两个时间点之间的差异,如“3小时”。 datetime 模块这是Python中最常用的用于处理日期和时间的模块。
基本用法 from datetime import datetime, timedelta # 获取当前时间 now = datetime.now() print("当前时间:", now) # 创建一个指定的时间 specific_time = datetime(2025, 2, 19, 11, 17) print("指定时间:", specific_time) # 时间格式化输出 formatted_time = now.strftime("%Y-%m-%d %H:%M:%S") print("格式化后的时间:", formatted_time) # 计算时间差 future_time = now + timedelta(days=5, hours=3) print("5天3小时后的时间:", future_time) time 模块这个模块提供了更多底层的时间操作功能。
基本用法 import time # 获取当前时间戳(自纪元以来的秒数) timestamp = time.time() print("当前时间戳:", timestamp) # 将时间戳转换为可读格式 local_time = time.localtime(timestamp) readable_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time) print("可读时间:", readable_time) # 暂停程序执行 print("开始暂停...") time.sleep(2) # 暂停2秒 print("暂停结束") # 高精度计时器 start_time = time.perf_counter() # 执行一些代码 end_time = time.perf_counter() print("代码执行耗时:", end_time - start_time, "秒") timeit 模块主要用于测量小段代码执行所需的时间,特别适合性能测试。
基本用法 import timeit def test_function(): """要测试的函数""" return [x for x in range(1000)] # 使用timeit测量函数执行时间 execution_time = timeit.timeit(test_function, number=1000) # 测试函数执行1000次的总时间 print("函数执行1000次的总时间:", execution_time, "秒") # 使用default_timer进行高精度计时 start = timeit.default_timer() test_function() # 直接调用函数 end = timeit.default_timer() print("单次执行时间:", end - start, "秒") 时间格式化符号在Python中,使用strftime()函数可以将时间格式化为特定的字符串形式。 常见的日期和时间格式化符号:
符号描述%Y四位数的年份(如2025)%m月份(01-12)%d月内的天数(01-31)%H24小时制的小时数(00-23)%M分钟数(00-59)%S秒数(00-59)%a本地简化星期名称(如Mon)%A本地完整星期名称(如Monday)%b本地简化的月份名称(如Jan)%B本地完整的月份名称(如January)%c本地相应的日期表示和时间表示%j年内的一天(001-366)%p本地AM或PM的等价符%U一年中的星期数(00-53),星期天为一周的开始%w星期几(0-6),星期天为一周的开始%W一年中的星期数(00-53),星期一为一周的开始%x本地相应的日期表示%X本地相应的时间表示%Z当前时区的名称%%百分号本身例如,要格式化当前时间为%Y-%m-%d %H:%M:%S的形式:
from datetime import datetime now = datetime.now() formatted_time = now.strftime("%Y-%m-%d %H:%M:%S") print("格式化后的时间:", formatted_time) 定时器实现定时器可以通过多种方式实现,下面是几种常见的方式:
使用 time.sleep()这是一个简单的延时方法,适合用于短时间的暂停。
import time def timer(seconds): print(f"计时开始,等待 {seconds} 秒...") time.sleep(seconds) print("计时结束!") timer(5) # 等待5秒 使用 threading.Timer这个方法适合需要在后台运行定时任务的情况。
import threading def task(): print("定时任务执行!") def set_timer(seconds): timer = threading.Timer(seconds, task) timer.start() print(f"定时器设置完成,将在 {seconds} 秒后执行任务...") set_timer(5) # 5秒后执行任务 使用 sched 模块sched模块提供了一个调度器类,可以在指定时间执行计划任务。
import sched import time scheduler = sched.scheduler(time.time, time.sleep) def task(name): print(f"任务 {name} 执行于 {time.ctime()}") def set_scheduler(seconds, name): scheduler.enter(seconds, 1, task, (name,)) print(f"调度器设置完成,任务 {name} 将在 {seconds} 秒后执行...") scheduler.run() set_scheduler(5, "example_task") # 5秒后执行任务 获取某月日历 import calendar cal = calendar.month(2025, 2) # 获取2025年2月的日历 print("以下输出2025年2月份的日历:") print(cal) 判断是否为闰年 import calendar year = 2025 if calendar.isleap(year): print(f"{year} 是闰年") else: print(f"{year} 不是闰年") 计算两个日期之间的差值 from datetime import datetime date1 = datetime(2025, 2, 19) date2 = datetime(2025, 2, 28) difference = date2 - date1 print(f"日期差: {difference.days} 天")全面掌握Python时间处理由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“全面掌握Python时间处理”