编程教育资源分享平台

网站首页 > 后端开发 正文

【Python】自动化编程之基础库 time 库

luoriw 2024-02-01 14:23:44 后端开发 12 ℃ 0 评论

time 简介

#python#

Python中的time模块是用于处理时间的标准库,它提供了许多函数来获取、处理和格式化时间信息

time 基本用法

以下是time模块中常用的函数:

time(): 返回当前时间的时间戳(自1970年1月1日以来的秒数)。
localtime([secs]): 将时间戳转换为本地时间(struct_time)。
gmtime([secs]): 将时间戳转换为UTC时间(struct_time)。
mktime(t): 将本地时间(struct_time)转换为时间戳。
strftime(format[, t]): 将struct_time类型的时间转换为指定格式的字符串。
strptime(string[, format]): 将字符串解析为struct_time类型的时间。
以下是示例代码:

import time

# 返回当前时间戳
print(time.time())

# 将时间戳转换为本地时间
print(time.localtime())

# 将时间戳转换为UTC时间
print(time.gmtime())

# 将本地时间转换为时间戳
print(time.mktime(time.localtime()))

# 将struct_time类型的时间转换为指定格式的字符串
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 将字符串解析为struct_time类型的时间
print(time.strptime("2022-02-18", "%Y-%m-%d"))

输出结果:

1645209397.6846676
time.struct_time(tm_year=2022, tm_mon=2, tm_mday=18, tm_hour=16, tm_min=49, tm_sec=57, tm_wday=4, tm_yday=49, tm_isdst=0)
time.struct_time(tm_year=2022, tm_mon=2, tm_mday=18, tm_hour=8, tm_min=49, tm_sec=57, tm_wday=4, tm_yday=49, tm_isdst=0)
1645209397.0
2022-02-18 16:49:57
time.struct_time(tm_year=2022, tm_mon=2, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=49, tm_isdst=-1)

除了上面介绍的函数外,time模块还包括其他函数,如sleep(seconds)函数可以暂停程序执行一定的时间,clock()函数可以返回CPU执行时间等。这些函数可以根据需要灵活运用。

time 高级用法

除了time模块中常用的基本函数,还有一些高级用法可以应用在更复杂的场景中。以下分别举例说明几种常见的高级用法:

datetime对象
time模块中的datetime类提供了更多的日期和时间操作,例如支持更多的时间精度、时区操作等。datetime类也可以用于时间的比较、加减等操作。

import datetime

# 创建当前时间
now = datetime.datetime.now()
print(now)

# 创建指定时间
dt = datetime.datetime(2022, 2, 18, 16, 30, 0)
print(dt)

# 时间比较
if now > dt:
    print("now is later than dt")
else:
    print("now is earlier than dt")

# 时间加减
delta = datetime.timedelta(days=10)
print(now + delta)

输出结果:

2023-02-18 11:34:58.751295
2022-02-18 16:30:00
now is later than dt
2023-02-28 11:34:58.751295

时间戳转换
有时我们需要将时间戳(秒数)转换为人类可读的日期时间格式,或者将日期时间格式转换为时间戳。可以使用time模块中的strftime和strptime函数,也可以使用datetime模块中的fromtimestamp和timestamp函数。

import time
import datetime

# 时间戳转为字符串格式
timestamp = 1645209397
str_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))
print(str_time)

# 字符串格式转为时间戳
str_time = "2022-02-18 16:49:57"
timestamp = int(time.mktime(time.strptime(str_time, "%Y-%m-%d %H:%M:%S")))
print(timestamp)

# 时间戳转为datetime对象
dt = datetime.datetime.fromtimestamp(timestamp)
print(dt)

# datetime对象转为时间戳
timestamp = int(dt.timestamp())
print(timestamp)

输出结果:

2022-02-18 16:49:57
1645209397
2022-02-18 16:49:57
1645209397

定时任务
有时我们需要在指定时间执行某些任务,可以使用time模块中的sleep函数结合while循环实现。下面的示例代码中,程序会每隔1秒检查当前时间是否到达指定时间,如果到达则执行任务并退出循环。

import time

# 指定时间
target_time = "2022-02-18 16:55:00"

# 循环检查时间
while True:
    now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    if now_time >= target_time:
        print("Time is up!")
        break
    time.sleep(1)

输出结果(在指定时间后):

Time is up!

定时执行
如果需要定时执行某些任务,可以使用Python的定时任务框架,例如APScheduler和schedule等。以下是使用schedule模块每天定时执行任务的示例代码。在下面的代码中,程序会每天的指定时间执行任务,并打印执行时间和任务内容。

import schedule
import time

def job():
    print("Task executed at", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 指定每天的执行时间
schedule.every().day.at("16:55").do(job)

# 循环执行任务
while True:
    schedule.run_pending()
    time.sleep(1)

输出结果(在指定时间后):

Task executed at 2022-02-18 16:55:00

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表
最新留言