• Python使用time库来格式化时间
  • 发布于 2个月前
  • 221 热度
    0 评论
引言
时间在编程中扮演着重要的角色,而Python的time库则为我们提供了处理时间相关操作的强大工具。无论是记录日志时间、计时器、生成时间戳还是展示可读性更好的时间格式,time库都能帮助我们轻松应对。今天我就用一篇文章介绍 time 库的用法,并给出格式化时间的规则和案例演示。

time库是什么?
在编程中,时间的处理是非常常见且重要的任务。我们需要记录事件发生的时间,计算程序的执行时间,处理日期和时间相关的逻辑等等。这时,time库就成为我们的得力助手。

time库是Python标准库中的一个模块,它提供了一系列函数来处理时间和日期。通过使用time库,我们可以获取当前时间、将时间格式化为字符串、解析时间字符串为时间对象,甚至进行时间的加减运算。它的功能丰富而灵活,让我们能够更好地掌握时间的处理。

什么是格式化时间?
在编程中,我们通常需要将时间以一种易读且符合我们需求的格式进行展示或存储。这就是格式化时间的概念。通过格式化时间,我们可以将时间转换为特定的字符串形式,以满足不同的需求。

格式化时间的用途广泛,其中一些常见的应用场景包括:
日志记录:将时间作为日志记录的一部分,方便追踪和分析日志信息。
文件命名:将时间作为文件名的一部分,确保文件名的唯一性和易读性。
数据分析:对时间进行分组、聚合和统计,帮助理解数据的时间特征和趋势。
用户界面:在用户界面中展示时间,提供更好的用户体验。

通过格式化时间,我们可以将时间按照自己的喜好和需求进行展示,使其看起来更方便和舒服。

time库用法
1、导入库
在开始使用time库之前,我们首先需要导入它。导入time库的步骤非常简单,只需在代码中使用import time语句即可。
import time
通过使用import time语句,我们成功地导入了time库,现在我们可以开始使用其中的函数和方法来处理时间相关的操作了。

2、获取当前时间
获取当前时间是使用time库最常见的操作之一。在time库中,可以使用time()函数来获取当前时间的时间戳。那么什么是时间戳?时间戳是指从计算机的固定起始时间(通常为1970年1月1日UTC)到当前时间的秒数。
import time
current_timestamp = time.time()
print("当前时间戳:", current_timestamp)
# 当前时间戳: 1686036298.061468
格式化时间
时间戳的显示是不直观的,如果我们希望将时间按照特定的格式进行展示,可以使用strftime()函数。该函数接受一个格式化字符串作为参数,并返回一个格式化后的时间字符串。
import time
# 堆代码 duidaima.com
current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("当前时间:", current_time)
# 当前时间: 2023-06-05 19:25:49
在上述示例中,我们使用strftime()函数将当前时间格式化为年-月-日 时:分:秒的字符串形式。"%Y-%m-%d %H:%M:%S"是格式化字符串,其中的代码%Y表示四位数的年份,%m表示两位数的月份,%d表示两位数的日期,%H表示24小时制的小时,%M表示分钟,%S表示秒。time.localtime()函数用于获取当前时间的结构化时间对象。

通过使用strftime()函数,我们可以根据自己的需要将时间格式化为不同的字符串形式。如果想格式化其它的显示样式怎么办?只要调用strftime()函数并传入格式代码拼接的字符串参数就行了。

下面是一些常用的格式代码,可以在格式化字符串中使用:
%Y:四位数的年份(例如:2023)
%y:两位数的年份(例如:23)
%m:两位数的月份(01到12)
%d:两位数的日期(01到31)
%H:24小时制的小时数(00到23)
%I:12小时制的小时数(01到12)
%M:两位数的分钟数(00到59)
%S:两位数的秒数(00到59)
%p:AM或PM,仅用于12小时制
%A:星期的完整名称(例如:Sunday)
%a:星期的缩写名称(例如:Sun)
%B:月份的完整名称(例如:January)
%b:月份的缩写名称(例如:Jan)

实际应用场景示例
1、日志添加记录时间
假设我们正在编写一个日志记录系统,需要在每条日志记录中包含时间信息。这时,time库就能派上用场。我们可以使用time库来获取当前时间,并将其添加到日志中,以便追踪和分析日志信息。
import time

def write_log(message):
   current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
   log_entry = f"[{current_time}] {message}"
   
   # 在这里将日志写入文件或进行其他操作
   print(log_entry)

# 示例用法
write_log("这是一条日志记录")
输出:
[2023-06-06 15:30:43] 这是一条日志记录

2、刷新显示倒计时
再比如球赛还有 5 分钟就开始了,我们可以编写一个程序来显示倒计时:
import time

def countdown(minutes):
   total_seconds = minutes * 60  # 将分钟转换为总秒数

   while total_seconds > 0:  # 当总秒数大于0时继续倒计时
       mins, secs = divmod(total_seconds, 60)  # 将总秒数转换为分钟和秒数
       # 输出倒计时,\r使光标返回行的开头,end=""保持在同一行上输出
       print(f"\r倒计时: {mins:02d}:{secs:02d}", end="")  
       time.sleep(1)  # 程序暂停1秒钟
       total_seconds -= 1  # 总秒数减1

   print("\r倒计时结束!")  # 倒计时结束后输出提示信息

# 设置倒计时时间为5分钟
countdown(5)
在上述示例中,我们定义了一个countdown()函数,它接受一个表示倒计时分钟数的参数。首先,我们将倒计时的总秒数计算出来(分钟数乘以60)。然后,我们进入一个循环,每次循环减少一秒,并将剩余的分钟数和秒数输出。使用divmod()函数可以同时获取整除后的分钟数和余数秒数,然后通过格式化字符串进行输出。

在字符串格式化中,使用 \r 将光标移到行的开头,并通过设置 end="" 来保持在同一行上输出。这样,在每次倒计时更新时,它将覆盖前一个倒计时的输出,从而实现刷新输出的效果。接下来,我们使用time.sleep(1)让程序暂停1秒钟,模拟倒计时的效果。最后,循环结束后输出倒计时结束的提示信息。

在示例的最后,我们调用countdown()函数,并传入倒计时的分钟数作为参数。例如,上述示例中的倒计时时间为5分钟。运行该程序,它将每隔一秒钟输出剩余的倒计时,直到倒计时结束为止。
用户评论