博客
关于我
Python 内置时间模块
阅读量:795 次
发布时间:2023-03-06

本文共 3429 字,大约阅读时间需要 11 分钟。

1、Datetime 时间模块

在处理时间和日期相关问题时,Python提供了丰富的内置模块,其中Datetime 模块是最常用的工具之一。这个模块涉及多个核心概念,包括日期、时间、时间戳等,通过这些模块,开发人员能够高效地进行时间和日期的处理。下面将从构建datetime对象、时间转换以及时间对象的运算三个方面,对datetime 模块进行详细介绍。

1.1 构建 datetime 对象实例

Datetime 模块的核心是datetime 类,它能够帮助开发人员构建时间对象实例。通过调用datetime函数或从字符串格式中提取时间信息,可以轻松生成datetime对象。例如:

```pythonfrom datetime import datetime dt = datetime(2024, 5, 20, 15, 30, 0) # 创建指定日期和时间的datetime对象 print(dt) # 输出: 2024-05-20 15:30:00 ```

此外,datetime对象还支持从字符串中解析时间信息,适用于处理用户输入或从文件中读取的日期时间格式。例如:

```pythondate_str = "2024-05-20 15:30:00" dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S") print(dt) # 输出: 2024-05-20 15:30:00 ```

1.2 时间转换

在实际开发中,时间和字符串的转换是非常常见的操作。Datetime 模块提供了多种方法来实现这一点,例如将datetime对象转换为字符串、JSON格式或其他格式。以下是一些常用的转换方法:

```pythonfrom datetime import datetime, timezone dt = datetime(2024, 5, 20, 15, 30, 0) date_str = dt.strftime("%Y-%m-%d %H:%M:%S") # 转换为ISO格式字符串 date_json = dt.toordinal() # 转换为时间戳( ordinal ) date_utc = dt.replace(tzinfo=timezone.utc).astimezone(timezone.utc) # 转换为UTC时区时间 ```

1.3 时间对象的运算

Datetime 模块支持对时间对象进行丰富的运算操作,例如日期和时间的加减、比较以及格式化。以下是一些常用的操作:

```pythonfrom datetime import datetime, timedelta

dt1 = datetime(2024, 5, 20, 15, 30, 0)

dt2 = dt1 + timedelta(days=1) # 添加一天
dt3 = dt1 - timedelta(hours=2) # 减去两小时
if dt1 > dt2:
print("dt1 大于 dt2")
else:
print("dt1 小于等于 dt2")

### 1.4 时区和时间区域  

在处理国际化时间问题时,Datetime 模块提供了强大的时区支持功能。通过设置时区信息,可以轻松将时间转换为不同时区的表示方式。例如:

```pythonfrom datetime import datetime, timezone dt = datetime(2024, 5, 20, 15, 30, 0, timezone('UTC')) # 创建UTC时区的datetime对象 dt_as_pacific = dt.astimezone(timezone('Pacific/Los_Angeles')) # 转换为太平洋时区 print(dt_as_pacific) # 输出: 2024-05-20 15:30:00-07:00 ```

### 1.5 与其他模块的集成

Datetime 模块不仅可以单独使用,还可以与其他Python模块进行集成。例如,可以将datetime对象与日历模块结合,实现更复杂的日期和时间管理任务。

### 1.6 总结

Datetime 模块是Python处理日期和时间问题的首选工具之一。通过构建datetime对象、进行时间转换以及执行时间运算,开发人员可以高效地完成各种时间和日期相关的任务。此外,模块提供的时区支持功能,使得处理国际化时间问题更加简单直接。

2、Time 模块

除了datetime 模块,Python 的Time 模块也是处理时间问题的重要工具。Time 模块主要用于处理时间而非日期,适用于某些特定场景。以下是Time 模块的核心知识点:

### 2.1 时间获取

Time 模块提供了获取当前时间的功能,可以单独获取小时、分钟、秒等时间信息。例如:

```pythonimport time now = time.time() # 获取当前时间以秒为单位 print(now) # 输出: 1717480915.0 ```

此外,还可以获取时间信息的其他属性,例如获取分钟和秒数:

```python import time now = time.time() second = int(time.time()) # 获取当前时间以秒为单位 minute, second = divmod(second, 60) # 分解秒数为分钟和秒数 print(f"{minute}分钟 {second}秒") # 输出: 28分钟 1秒 ```

### 2.2 时间转换

Time 模块支持将时间转换为字符串格式或其他可读格式。例如,可以将时间转换为ISO格式字符串:

```python import time now = time.time() date_str = time.strftime("%Y-%m-%d %H:%M:%S", now) print(date_str) # 输出: 2024-05-20 15:30:00 ```

### 2.3 时间对象的运算

Time 模块提供了对时间的加减运算功能。例如,可以将当前时间加上或减去一定的秒数:

```python import time now = time.time() added_seconds = now + 10 # 添加10秒 subtracted_seconds = now - 10 # 减去10秒 print(f"当前时间:{now}秒") # 输出: 当前时间:1717480915秒 print(f"添加10秒后:{added_seconds}秒") # 输出: 添加10秒后:1717480925秒 print(f"减去10秒后:{subtracted_seconds}秒") # 输出: 减去10秒后:1717480905秒 ```

### 2.4 与其他模块的集成

Time 模块可以与datetime 模块结合使用,例如将datetime对象转换为时间戳或反之。例如:

```python from datetime import datetime import time dt = datetime(2024, 5, 20, 15, 30, 0) timestamp = dt.timestamp() # 将datetime对象转换为时间戳 time_from_timestamp = time.time(timestamp) # 从时间戳获取时间信息 print(time_from_timestamp) # 输出: 1717480925.0 ```

### 2.5 总结

Time 模块主要用于处理时间信息,而非日期,适用于需要精确时间点处理的场景。通过获取当前时间、进行时间转换以及执行时间运算,开发人员可以方便地完成各种时间相关的任务。此外,Time 模块与datetime 模块的配合使用,使得时间和日期处理变得更加灵活和高效。

转载地址:http://ycofk.baihongyu.com/

你可能感兴趣的文章
python excel接口自动化测试框架!
查看>>
Python EXEC和__NAME__
查看>>
python file
查看>>
Python FileDialog获取文件夹路径不是文件
查看>>
python filter过滤器的使用_python基础知识分享:zip()、filter函数和reduce如何使用?...
查看>>
python flask 请求code 400, message Bad request version
查看>>
Python Flink Stateful函数入口上的Kafka键访问
查看>>
Python float - str - 浮动怪异
查看>>
Python Flower库:分布式任务管理与监控
查看>>
Python for 循环和迭代器行为
查看>>
Python For循环多次返回
查看>>
python frame_python3 selenium自动化 frame表单嵌套的切换方法
查看>>
Python ftplib - 指定端口
查看>>
Python furl库:一键搞定复杂URL操作
查看>>
Python GC 也会关闭文件吗?
查看>>
python gen_key.py 报错 提示找不到OpenSSL lib
查看>>
python getattrribute_Python学习——面向对象高级之反射
查看>>
Python进阶语法:字典推导式
查看>>
python gil_Python中GIL的使用详解
查看>>
python glob.glob使用
查看>>