目录
在 Python 中处理日期和时间是非常常见的需求,无论是用于数据分析、日志记录、定时任务还是其他用途。Python 3 提供了多个模块来帮助开发者处理日期和时间,其中最常用的是 datetime
和 time
模块。
1. datetime
模块
datetime
模块提供了用于处理日期和时间的类,主要包括 datetime
, date
, time
, timedelta
等。
1.1 获取当前日期和时间
python
深色版本
1from datetime import datetime
2
3# 获取当前日期和时间
4now = datetime.now()
5print(now)
1.2 日期和时间的构造
python
深色版本
1from datetime import datetime, date, time
2
3# 构造日期
4d = date(2021, 12, 25)
5print(d)
6
7# 构造时间
8t = time(12, 30, 45)
9print(t)
10
11# 构造日期时间
12dt = datetime(2021, 12, 25, 12, 30, 45)
13print(dt)
1.3 日期时间的格式化
python
深色版本
1from datetime import datetime
2
3# 当前日期时间
4now = datetime.now()
5
6# 格式化日期时间
7formatted = now.strftime('%Y-%m-%d %H:%M:%S')
8print(formatted)
1.4 解析日期时间字符串
python
深色版本
1from datetime import datetime
2
3# 解析日期时间字符串
4dt_str = '2021-12-25 12:30:45'
5dt = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S')
6print(dt)
1.5 计算日期时间差
python
深色版本
1from datetime import datetime, timedelta
2
3# 当前日期时间
4now = datetime.now()
5
6# 一周后的日期时间
7future = now + timedelta(days=7)
8print(future)
9
10# 计算两个日期时间之间的差
11delta = future - now
12print(delta)
2. time
模块
time
模块提供了与时间相关的函数,特别是用于计时、延迟和转换时间格式等功能。
2.1 获取时间戳
python
深色版本
1import time
2
3# 获取当前时间戳
4timestamp = time.time()
5print(timestamp)
2.2 时间延时
python
深色版本
1import time
2
3# 输出当前时间
4print(time.ctime())
5
6# 延迟3秒
7time.sleep(3)
8
9# 再次输出当前时间
10print(time.ctime())
2.3 时间格式化
python
深色版本
1import time
2
3# 获取时间元组
4localtime = time.localtime()
5print(localtime)
6
7# 格式化时间
8formatted_time = time.strftime('%Y-%m-%d %H:%M:%S', localtime)
9print(formatted_time)
3. 其他相关模块
3.1 calendar
模块
calendar
模块提供了处理日历的函数。
python
深色版本
1import calendar
2
3# 输出本月的日历
4print(calendar.month(2021, 12))
3.2 zoneinfo
模块
Python 3.9 及以后版本引入了 zoneinfo
模块来处理时区问题。对于较旧的版本,可以使用 pytz
库。
python
深色版本
1from datetime import datetime
2import zoneinfo
3
4# 设置时区
5tz = zoneinfo.ZoneInfo('America/New_York')
6
7# 获取当前日期时间
8now = datetime.now(tz)
9print(now)
4. 实战应用示例
4.1 获取某个月的日历
python
深色版本
1import calendar
2
3# 获取2021年12月的日历
4cal = calendar.monthcalendar(2021, 12)
5print(cal)
4.2 计算两个日期之间的工作日数量
python
深色版本
1from datetime import datetime, timedelta
2import calendar
3
4start_date = datetime(2021, 12, 1)
5end_date = datetime(2021, 12, 31)
6
7workdays = 0
8delta = end_date - start_date
9for i in range(delta.days + 1):
10 day = start_date + timedelta(days=i)
11 if calendar.weekday(day.year, day.month, day.day) < 5: # Monday to Friday
12 workdays += 1
13
14print(workdays)
总结
Python 提供了丰富的模块来处理日期和时间,包括 datetime
, time
, calendar
等。通过上述示例,你应该能够掌握如何使用这些模块来处理日期和时间,包括获取当前日期时间、格式化日期时间、计算日期时间差、处理时区等。