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

Python3 time模块详解与时间转换教程 - 从入门到精通

Python3 time模块详解与时间转换教程

全面掌握时间操作与转换技巧

什么是Python time模块?

Python的time模块是标准库中处理时间的核心模块,提供了各种时间相关的功能:

  • 获取当前时间(时间戳和结构化时间)
  • 时间格式的转换(时间戳 ↔ 时间元组 ↔ 可读字符串)
  • 时间延迟操作(sleep)
  • 性能计时(perf_counter)

使用前只需导入模块:import time

时间的基本概念

时间戳 (Timestamp)

表示从1970年1月1日00:00:00 UTC开始计算的秒数(浮点数)

示例: 1698765432.12345

时间元组 (struct_time)

包含9个元素的元组,表示时间的各个组成部分:

(年, 月, 日, 时, 分, 秒, 星期, 一年中的第几天, 夏令时)

格式化时间字符串

人类可读的时间表示形式

示例: "2023-10-30 14:30:45"

常用格式: %Y-%m-%d %H:%M:%S

时间获取方法

1. 获取当前时间戳

import time

current_timestamp = time.time()
print(f"当前时间戳: {current_timestamp}")
# 输出示例: 当前时间戳: 1698765432.12345

2. 获取当前时间元组

current_struct = time.localtime()  # 本地时间
print("当前时间元组:", current_struct)
# 输出示例: time.struct_time(tm_year=2023, tm_mon=10, tm_mday=30, ...)

utc_struct = time.gmtime()  # UTC时间
print("UTC时间元组:", utc_struct)

3. 获取格式化时间字符串

formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("格式化时间:", formatted_time)
# 输出示例: 格式化时间: 2023-10-30 14:30:45

时间转换方法

时间戳 → 时间元组

timestamp = 1698765432.12345
struct_time = time.localtime(timestamp)  # 本地时间元组
# 或
utc_struct_time = time.gmtime(timestamp)  # UTC时间元组

时间元组 → 时间戳

struct_time = (2023, 10, 30, 14, 30, 45, 0, 303, 0)
timestamp = time.mktime(struct_time)
print("转换后的时间戳:", timestamp)

时间元组 → 格式化字符串

struct_time = time.localtime()
formatted = time.strftime("%Y年%m月%d日 %H时%M分%S秒", struct_time)
print("自定义格式:", formatted)
# 输出: 2023年10月30日 14时30分45秒

格式化字符串 → 时间元组

date_str = "2023-10-30 14:30:45"
struct_time = time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print("解析后的时间元组:", struct_time)

完整转换示例

import time

# 1. 获取当前时间戳
timestamp = time.time()
print(f"1. 当前时间戳: {timestamp}")

# 2. 时间戳 -> 时间元组
struct_time = time.localtime(timestamp)
print(f"2. 时间元组: {struct_time}")

# 3. 时间元组 -> 格式化字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", struct_time)
print(f"3. 格式化时间: {formatted_time}")

# 4. 格式化字符串 -> 时间元组
parsed_time = time.strptime(formatted_time, "%Y-%m-%d %H:%M:%S")
print(f"4. 解析回时间元组: {parsed_time}")

# 5. 时间元组 -> 时间戳
new_timestamp = time.mktime(parsed_time)
print(f"5. 转换回时间戳: {new_timestamp}")

# 6. 时间差计算
time_diff = abs(new_timestamp - timestamp)
print(f"6. 转换过程时间差: {time_diff:.6f}秒")

常用格式化符号说明

符号 含义 示例
%Y 四位数的年份 2023
%m 月份(01-12) 10
%d 月内中的一天(01-31) 30
%H 24小时制小时数(00-23) 14
%M 分钟数(00-59) 30
%S 秒(00-59) 45

© 2023 Python时间处理教程 | 掌握时间操作的核心技巧

发表评论