找回密码
 会员注册
查看: 27|回复: 0

Python的time模块——各种与时间相关的函数

[复制链接]

3

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2024-9-9 11:54:21 | 显示全部楼层 |阅读模式
文章目录1.获取当前时间2.时间格式化3.延时执行4.时间戳运算5.计算代码执行时间6.转换为指定时区的时间7.定时器(每隔一定时间执行一次任务)8.获取时间戳的日期部分Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等。以下是对time模块中一些常用功能的详细介绍、用法、常见用法以及示例代码和运行结果。1.获取当前时间time.time():返回自纪元(1970年1月1日00:00:00UTC)以来的秒数,通常称为Unix时间戳。time.localtime():返回一个表示本地时间的time.struct_time对象。time.gmtime():返回一个表示协调世界时(UTC)的time.struct_time对象。importtime#获取当前时间戳timestamp=time.time()print("当前时间戳:",timestamp)#获取本地时间local_time=time.localtime()print("本地时间:",local_time)#获取UTC时间utc_time=time.gmtime()print("UTC时间:",utc_time)12345678910111213运行结果(取决于你的时区和当前时间):当前时间戳:1715833304.1631322本地时间:time.struct_time(tm_year=2024,tm_mon=5,tm_mday=16,tm_hour=12,tm_min=21,tm_sec=44,tm_wday=3,tm_yday=137,tm_isdst=0)UTC时间:time.struct_time(tm_year=2024,tm_mon=5,tm_mday=16,tm_hour=4,tm_min=21,tm_sec=44,tm_wday=3,tm_yday=137,tm_isdst=0)12342.时间格式化time.strftime(format,time_tuple):将time.struct_time对象格式化为字符串。time.strptime(string,format):将字符串解析为time.struct_time对象。importtime#格式化本地时间formatted_time=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime())print("格式化后的本地时间:",formatted_time)#解析时间字符串parsed_time=time.strptime("2021-09-1010:22:47","%Y-%m-%d%H:%M:%S")print("解析后的时间:",parsed_time)123456789运行结果:格式化后的本地时间:2024-05-1612:22:02解析后的时间:time.struct_time(tm_year=2021,tm_mon=9,tm_mday=10,tm_hour=10,tm_min=22,tm_sec=47,tm_wday=4,tm_yday=253,tm_isdst=-1)12343.延时执行time.sleep(seconds):使程序暂停指定的秒数。importtimeprint("开始休眠...")time.sleep(2)#休眠2秒print("休眠结束!")12345运行结果:开始休眠...(等待2秒)休眠结束!1234.时间戳运算由于时间戳是浮点数,可以直接进行加减运算来表示时间间隔。importtime#获取当前时间戳now=time.time()#10秒后future=now+10print("10秒后的时间戳:",future)#10秒前past=now-10print("10秒前的时间戳:",past)123456789101112运行结果:10秒后的时间戳:1715833358.965056710秒前的时间戳:1715833338.9650567125.计算代码执行时间你可以使用time.time()来计算一段代码的执行时间。importtimestart_time=time.time()#这里是你要计算执行时间的代码foriinrange(1000000):passend_time=time.time()execution_time=end_time-start_timeprint(f"代码执行时间:{execution_time}秒")1234567891011运行结果:代码执行时间:0.03800845146179199秒16.转换为指定时区的时间Python的time模块本身并不直接支持时区转换,但你可以使用pytz库或Python3.9+中的zoneinfo模块来做到这一点。以下是一个使用pytz的示例:importtimeimportpytzfromdatetimeimportdatetime#获取当前UTC时间utc_now=datetime.utcnow()print("UTC时间:",utc_now)#转换为纽约时间(EST/EDT)new_york_tz=pytz.timezone('America/New_York')new_york_time=utc_now.astimezone(new_york_tz)print("纽约时间:",new_york_time)123456789101112运行结果:UTC时间:2024-05-1604:24:15.237127纽约时间:2024-05-1516:24:15.237127-04:0012注意:在运行上述代码之前,你需要先安装pytz库,可以使用pipinstallpytz命令进行安装。Python第三方库的安装和导入7.定时器(每隔一定时间执行一次任务)你可以使用time.sleep()和一个循环来创建一个简单的定时器。importtimedeftimer_task():print("定时任务执行中...")whileTrue:timer_task()time.sleep(5)#每5秒执行一次#注意:上面的代码会无限循环,你可能需要一种方式来中断它,比如设置一个标志变量或使用try/except捕获KeyboardInterrupt异常。123456789108.获取时间戳的日期部分如果你有一个时间戳并且只想获取其日期部分,你可以将时间戳转换为datetime对象,然后提取日期。importtimefromdatetimeimportdatetimetimestamp=time.time()dt_object=datetime.fromtimestamp(timestamp)date_only=dt_object.date()print("日期部分:",date_only)1234567运行结果:日期部分:2024-05-161这些示例展示了time模块在Python中的一些常见用法。根据你的具体需求,你可能还需要结合其他库或模块来实现更复杂的时间处理任务。注意:这里只是简单地对时间戳进行了加减,但结果仍然是时间戳,而不是人类可读的日期时间格式。如果你需要将其转换为可读的格式,可以使用time.localtime()或time.gmtime()结合time.strftime()进行格式化。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 05:44 , Processed in 0.433793 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表