当前位置: 首页 > news >正文

Python之time时间库

time时间库

  • 概述
  • 获取当前时间
    • time库
    • datetime库
    • 区别
  • 时间元组处理
    • 获取时间元组的各个部分
    • 时间戳和时间元组的转换
  • 格式化时间
    • 格式化时间
    • 解析时间
    • 格式符号说明
  • 暂停程序
  • 计时操作
    • 简单计时
    • 高精度计时
    • 计时器类的实现
  • UTC时间操作
    • time库
    • datetime库

概述

time是Python标准库中的一个模块,用于处理时间相关的操作。它提供了各种函数来获取当前时间、格式化时间、进行时间的转换和计算等。

首先,需要导入 time 模块:

import time

获取当前时间

time库

  • 时间戳:返回自1970年1月1日以来的秒数。

    timestamp = time.time()
    print("当前时间戳:", timestamp)
    
  • 本地时间:返回一个表示本地时间的结构化时间。

    local_time = time.localtime()
    print("本地时间:", local_time)
    
  • 格式化时间:将时间格式化为可读字符串。

    formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
    print("格式化时间:", formatted_time)
    

使用time库获取当前时间

import time# 获取当前时间戳
current_timestamp = time.time()
print("当前时间戳:", current_timestamp)# 将时间戳转换为本地时间
local_time = time.localtime(current_timestamp)# 格式化输出当前时间
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("当前本地时间:", formatted_time)

输出结果:

当前时间戳: 1729261034.7482784
当前本地时间: 2024-10-18 22:17:14

datetime库

datetime是一个与time类似的库。它库提供了更强大的时间和日期处理功能。

以下是使用datetime库获取当前时间的示例:

from datetime import datetime# 获取当前时间
current_datetime = datetime.now()
print("当前日期和时间:", current_datetime)# 格式化输出当前时间
formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
print("格式化后的当前时间:", formatted_datetime)# 获取单独的日期和时间
current_date = current_datetime.date()
current_time = current_datetime.time()
print("当前日期:", current_date)
print("当前时间:", current_time)
当前日期和时间: 2024-10-18 22:17:55.574988
格式化后的当前时间: 2024-10-18 22:17:55
当前日期: 2024-10-18
当前时间: 22:17:55.574988

区别

time库:适合简单的时间获取和格式化操作。datetime库:提供了更多功能,如日期和时间的加减、比较等,适合更复杂的时间处理需求。

时间元组处理

时间元组包含年、月、日、小时、分钟、秒等信息,可以通过索引访问这些信息。

获取时间元组的各个部分

可以直接从时间元组中提取年、月、日、小时、分钟、秒等。

import time# 获取当前本地时间的时间元组
local_time_tuple = time.localtime()year = local_time_tuple.tm_year
month = local_time_tuple.tm_mon
day = local_time_tuple.tm_mday
hour = local_time_tuple.tm_hour
minute = local_time_tuple.tm_min
second = local_time_tuple.tm_secprint(f"当前时间: {year}-{month}-{day} {hour}:{minute}:{second}")

时间戳和时间元组的转换

使用time.mktime(t):将时间元组转换为时间戳(本地时间)。

import time# 创建一个时间元组
time_tuple = (2024, 10, 1, 12, 0, 0, 0, 0, -1)  # 2024年10月1日 12:00:00# 转换为时间戳
timestamp = time.mktime(time_tuple)
print("时间戳:", timestamp)

使用time.asctime([t]):将时间元组转换为可读的字符串格式。

import time# 获取当前时间的时间元组
current_time_tuple = time.localtime()# 将当前时间元组转换为可读字符串
current_time_str = time.asctime(current_time_tuple)
print("当前时间:", current_time_str)

格式化时间

格式化时间

time.strftime(format, t)函数用于将时间元组t格式化为字符串。format是一个格式字符串,指定了输出的格式。

import time# 获取当前时间的时间元组
current_time = time.localtime()# 格式化时间
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", current_time)
print("当前时间:", formatted_time)

解析时间

time.strptime(string, format)函数用于将字符串解析为时间元组。

import time# 时间字符串
time_string = "2023-10-01 12:30:45"# 解析时间字符串
time_tuple = time.strptime(time_string, "%Y-%m-%d %H:%M:%S")# 输出时间元组
print("时间元组:", time_tuple)

输出结果:

时间元组: time.struct_time(tm_year=2023, tm_mon=10, tm_mday=1, tm_hour=12, tm_min=30, tm_sec=45, tm_wday=6, tm_yday=274, tm_isdst=-1)

格式符号说明

格式化字符串用途举例
%Y年(4位数字)2024
%y年(后2位数字)24
%m月(数字)12
%B月(英文)December
%b月(缩写)Dec
%A星期(英文)Monday
%a星期(缩写)Mon
%d日期(数字)11
%D完整日期(月/日/年)24/11/18
%p上午/下午PM
%H小时(24 小时制)18
%h小时(12 小时制)6
%M分钟55
%S33

使用time库获取当前时间并格式化输出

import time# 获取当前时间戳
timestamp = time.time()
print("当前时间戳:", timestamp)# 获取本地时间并格式化
local_time = time.localtime(timestamp)# 使用不同的格式化字符串
formatted_full_year = time.strftime("%Y", local_time)  # 年(全写数字)
formatted_two_digit_year = time.strftime("%y", local_time)  # 年(后两位数字)
formatted_month_number = time.strftime("%m", local_time)  # 月(数字)
formatted_month_full = time.strftime("%B", local_time)  # 月(英文)
formatted_month_abbr = time.strftime("%b", local_time)  # 月(缩写)
formatted_weekday_full = time.strftime("%A", local_time)  # 星期(英文)
formatted_weekday_abbr = time.strftime("%a", local_time)  # 星期(缩写)
formatted_day = time.strftime("%d", local_time)  # 日期(数字)
formatted_full_date = time.strftime("%D", local_time)  # 完整日期(月/日/年)
formatted_am_pm = time.strftime("%p", local_time)  # 上午/下午
formatted_hour_24 = time.strftime("%H", local_time)  # 小时(24 小时制)
formatted_hour_12 = time.strftime("%I", local_time)  # 小时(12 小时制)
formatted_minute = time.strftime("%M", local_time)  # 分钟
formatted_second = time.strftime("%S", local_time)  # 秒# 打印格式化后的时间
print("格式化时间示例:")
print("年(全写数字):", formatted_full_year)
print("年(后两位数字):", formatted_two_digit_year)
print("月(数字):", formatted_month_number)
print("月(英文):", formatted_month_full)
print("月(缩写):", formatted_month_abbr)
print("星期(英文):", formatted_weekday_full)
print("星期(缩写):", formatted_weekday_abbr)
print("日期(数字):", formatted_day)
print("完整日期(月/日/年):", formatted_full_date)
print("上午/下午:", formatted_am_pm)
print("小时(24 小时制):", formatted_hour_24)
print("小时(12 小时制):", formatted_hour_12)
print("分钟:", formatted_minute)
print("秒:", formatted_second)

输出类似以下内容

当前时间戳: 1729260848.0795202
格式化时间示例:
年(全写数字): 2024
年(后两位数字): 24
月(数字): 10
月(英文): October
月(缩写): Oct
星期(英文): Friday
星期(缩写): Fri
日期(数字): 18
完整日期(月//年): 10/18/24
上午/下午: PM
小时(24 小时制): 22
小时(12 小时制): 10
分钟: 14: 08

暂停程序

在Python中,可以使用time库的sleep()函数来暂停程序的执行。适用于需要延迟执行的场景,例如倒计时、动画效果等。

sleep(seconds):seconds参数可以是浮点数,表示暂停执行指定的秒数。

import timeprint("程序开始")
# 暂停 3 秒
time.sleep(3)
print("程序继续,暂停了 3 秒")

一个简单的倒计时器示例,使用time.sleep()来实现每秒更新一次倒计时

import timedef countdown(seconds):while seconds > 0:print(f"倒计时: {seconds} 秒")time.sleep(1)  # 暂停 1 秒seconds -= 1print("时间到!")# 启动倒计时 5 秒
countdown(5)

输出结果如下:

倒计时: 5 秒
倒计时: 4 秒
倒计时: 3 秒
倒计时: 2 秒
倒计时: 1 秒
时间到!

计时操作

在Python 中,time库可以用于计时和测量代码执行的时间。常用的方法包括time.time()time.perf_counter()

简单计时

time.time()返回当前的时间戳(自1970年1月1日以来的秒数)。可以使用它来测量代码块的执行时间。

import time# 记录开始时间
start_time = time.time()# 执行一些操作
time.sleep(2)  # 模拟耗时操作(例如,等待2秒)# 记录结束时间
end_time = time.time()# 计算执行时间
execution_time = end_time - start_time
print(f"代码执行时间: {execution_time:.2f} 秒")

高精度计时

time.perf_counter()提供了更高精度的计时器,适合用于性能测量。

import time# 记录开始时间
start_time = time.perf_counter()# 执行一些操作
time.sleep(2)  # 模拟耗时操作(例如,等待2秒)# 记录结束时间
end_time = time.perf_counter()# 计算执行时间
execution_time = end_time - start_time
print(f"代码执行时间: {execution_time:.4f} 秒")

计时器类的实现

创建一个简单的计时器类,方便重复使用。

import timeclass Timer:def __init__(self):self.start_time = Nonedef start(self):self.start_time = time.perf_counter()def stop(self):if self.start_time is None:raise ValueError("Timer has not been started.")end_time = time.perf_counter()elapsed_time = end_time - self.start_timeself.start_time = None  # 重置计时器 return elapsed_timereturn elapsed_time# 使用计时器
timer = Timer()timer.start()
time.sleep(1.5)  # 模拟耗时操作
elapsed_time = timer.stop()print(f"计时器记录的时间: {elapsed_time:.4f} 秒")

UTC时间操作

使用time库处理UTC时间相对简单,适合进行基本的时间操作。如果有更复杂的时间处理需求,建议使用datetimepytz库。

time库

1.使用time.gmtime()获取当前的UTC时间,并将其转换为时间元组。

import time# 获取当前 UTC 时间的时间元组
utc_time_tuple = time.gmtime()print(f"当前 UTC 时间的时间元组: {utc_time_tuple}")

输出:

当前 UTC 时间的时间元组: time.struct_time(tm_year=2024, tm_mon=10, tm_mday=18, tm_hour=14, tm_min=51, tm_sec=24, tm_wday=4, tm_yday=292, tm_isdst=0)

2.可以使用 time.strftime()函数将时间元组格式化为字符串。

import time# 获取当前 UTC 时间的时间元组
utc_time_tuple = time.gmtime()# 格式化输出
formatted_utc = time.strftime("%Y-%m-%d %H:%M:%S", utc_time_tuple)
# 当前 UTC 时间: 2024-10-18 14:54:07
print(f"当前 UTC 时间: {formatted_utc}")

3.如果想获取当前UTC时间的时间戳,可以使用time.time()函数。

import time# 获取当前 UTC 时间的时间戳
utc_timestamp = time.time()print(f"当前 UTC 时间戳: {utc_timestamp}")

4.如果有一个时间戳,可以使用time.gmtime()将其转换为 UTC 时间的时间元组。

import time# 获取当前 UTC 时间的时间戳
utc_timestamp = time.time()# 将时间戳转换为 UTC 时间的时间元组
utc_time_tuple = time.gmtime(utc_timestamp)# 格式化输出
formatted_utc = time.strftime("%Y-%m-%d %H:%M:%S", utc_time_tuple)
print(f"当前 UTC 时间: {formatted_utc}")

datetime库

1.使用datetime.datetime.utcnow()方法可以获取当前的UTC时间。

from datetime import datetime# 获取当前 UTC 时间
utc_now = datetime.utcnow()
print(f"当前 UTC 时间: {utc_now}")

2.使用strftime方法将UTC时间格式化并输出字符串,以便更易读。

from datetime import datetime# 获取当前 UTC 时间
utc_now = datetime.utcnow()# 格式化输出
formatted_utc = utc_now.strftime("%Y-%m-%d %H:%M:%S")
print(f"当前 UTC 时间: {formatted_utc}")

3.如果需要处理时区,可以使用pytz库(需要安装)来获取带时区的UTC时间。

from datetime import datetime
import pytz# 获取 UTC 时区对象
utc_timezone = pytz.utc# 获取当前 UTC 时间并设置时区
utc_now = datetime.now(utc_timezone)
print(f"当前带时区的 UTC 时间: {utc_now}")

4.如果需要将本地时间转换为UTC时间,可以使用astimezone()方法。

from datetime import datetime
import pytz# 获取当前本地时间
local_now = datetime.now()# 将本地时间转换为 UTC 时间
local_timezone = pytz.timezone("Asia/Shanghai")  # 例如,使用上海时区
local_now = local_timezone.localize(local_now)  # 本地化
utc_now = local_now.astimezone(pytz.utc)  # 转换为 UTC 时间print(f"当前本地时间: {local_now}")
print(f"转换后的 UTC 时间: {utc_now}")

输出结果:

当前本地时间: 2024-10-18 22:45:30.948967+08:00
转换后的 UTC 时间: 2024-10-18 14:45:30.948967+00:00
http://www.lryc.cn/news/489040.html

相关文章:

  • Easyexcel(4-模板文件)
  • 国产linux系统(银河麒麟,统信uos)使用 PageOffice 动态生成word文件
  • Window11+annie 视频下载器安装
  • SAP GR(Group Reporting)配置篇(七)
  • 共建智能软件开发联合实验室,怿星科技助力东风柳汽加速智能化技术创新
  • 优化表单交互:在 el-select 组件中嵌入表格显示选项
  • 每日一题 LCR 079. 子集
  • cocos creator 3.8 Node学习 3
  • 微信小程序底部button,小米手机偶现布局错误的bug
  • 【计组】复习题
  • Apache Maven 标准文件目录布局
  • Android 功耗分析(底层篇)
  • 【Xbim+C#】创建圆盘扫掠IfcSweptDiskSolid
  • IntelliJ+SpringBoot项目实战(四)--快速上手数据库开发
  • 利用oss进行数据库和网站图片备份
  • Excel - VLOOKUP函数将指定列替换为字典值
  • 实验室管理平台:Spring Boot技术构建
  • 操作系统进程和线程——针对实习面试
  • 使用 cnpm 安装 Electron,才是正确快速的方法
  • 【人工智能】PyTorch、TensorFlow 和 Keras 全面解析与对比:深度学习框架的终极指南
  • 【第八课】Rust中的函数与方法
  • c语言学习25二维数组
  • 如何理解Lua 使用虚拟堆栈
  • 【倍数问题——同余系】
  • 「San」监听DOM变化的方法
  • 如何选择服务器
  • 嵌入式驱动面试总结
  • Uniapp 简单配置鸿蒙
  • 线程池的实现与应用
  • 基于Java Springboot单位考勤系统