Python中time库基本用法

一、time库基本含义:

Python中的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"))

输出:

1702433817.7908175
time.struct_time(tm_year=2023, tm_mon=12, tm_mday=13, tm_hour=10, tm_min=16, tm_sec=57, tm_wday=2, tm_yday=347, tm_isdst=0)
time.struct_time(tm_year=2023, tm_mon=12, tm_mday=13, tm_hour=2, tm_min=16, tm_sec=57, tm_wday=2, tm_yday=347, tm_isdst=0)
1702433817.0
2023-12-13 10:16: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库的高级用法

1、datetime类

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

import datetime

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

# 创建指定时间
dt = datetime.datetime(2023, 12, 13, 10, 40, 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-12-13 10:49:33.608232
2023-12-13 10:40:00
now is later than dt
2023-12-23 10:49:33.608232

2、时间戳转换

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

import time
import datetime

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

# 字符串格式转为时间戳
str_time = "2023-12-13 10:50:01"
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)

输出:

2023-12-13 10:16:57
1702435801
2023-12-13 10:50:01
1702435801
 

3、定时任务

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

import time

# 指定时间
target_time = "2023-12-13 10:51: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!

4、定时执行

如果需要定时执行某些任务,可以使用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("11:06").do(job)

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

输出:本地之间达到预定时间之后显示。

Task executed at 2023-12-13 11:06:00

资源来自网络,可以参考学习。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值