Python 的时间模块是用于处理和操作时间数据的重要工具,提供了多种表示时间的方式,包括时间戳、元组(struct_time)和格式化的时间字符串。本文将详细介绍这些表示方法以及如何在它们之间进行转换,并演示相关函数的用法。
时间戳是自1970年1月1日00:00:00(UTC)以来的秒数,通常以浮点数形式表示。`time.time()` 函数可以获取当前系统时间的时间戳。
格式化的时间字符串是一种常见的表示时间的方式,如 "1999-12-06"。Python 提供了 `%` 符号的格式化字符串来定制输出时间的格式,例如 `%Y` 代表四位数的年份, `%m` 代表月份, `%d` 代表日期等。`time.strftime()` 函数用于将时间元组或时间戳转换为格式化的字符串。
结构化时间(struct_time)是元组形式,包含9个元素,分别代表年、月、日、时、分、秒、星期、年内天数和是否为夏令时。`time.localtime()` 和 `time.gmtime()` 分别用于获取本地时间和UTC时间的struct_time对象,而 `time.mktime()` 可以将struct_time转换回时间戳。
以下是一些关键函数和方法的使用示例:
1. 获取当前时间戳:
```python
import time
timestamp = time.time()
print(timestamp)
```
2. 格式化时间输出:
```python
formatted_time = time.strftime('%Y-%m-%d %H:%M:%S')
print(formatted_time) # 例如:2021-11-25 18:34:33
```
3. 从时间戳转为struct_time:
```python
timestamp = 1500000000
local_struct_time = time.localtime(timestamp)
print(local_struct_time)
```
4. struct_time转时间戳:
```python
year, month, day, hour, minute, second, _, _, _ = local_struct_time
timestamp = time.mktime((year, month, day, hour, minute, second, 0, 1, -1))
print(timestamp)
```
5. UTC时间与本地时间转换:
```python
utc_time = time.gmtime()
local_time = time.localtime()
print(utc_time, local_time)
```
6. 访问struct_time中的具体值:
```python
year, month, day, hour, minute, second, _, yday, dst = local_struct_time
print(f"Year: {year}, Month: {month}, Day: {day}")
```
理解Python时间模块有助于处理和展示时间数据,不论是记录日志、计算时间间隔还是进行时间相关的逻辑判断。通过灵活运用以上方法,可以轻松实现各种时间相关的功能。