2022-03-16
python模块
00
请注意,本文编写于 1130 天前,最后修改于 40 天前,其中某些信息可能已经过时。

目录

1. 导入模块
2. 获取当前日期和时间
3. 创建指定日期和时间
4. 字符串和日期之间的转换
5. 日期加减操作
6. 日期时间的属性
7. 比较日期和时间
8. 获取星期几
9. 时间戳与日期时间转换
10. 获取日期差
11.获取开始时间到结束时间内所有的月份
解释
输出示例

datetime 模块在 Python 中非常实用,尤其是在处理日期和时间时。以下是 datetime 模块的一些常用方法:

1. 导入模块

python
from datetime import datetime, timedelta, date, time

2. 获取当前日期和时间

  • 当前日期时间datetime.now()
  • 当前日期date.today()
  • 当前时间datetime.now().time()
python
print(datetime.now()) # 当前日期和时间 print(date.today()) # 当前日期 print(datetime.now().time()) # 当前时间

3. 创建指定日期和时间

  • 创建日期时间datetime(year, month, day, hour, minute, second)
  • 创建日期date(year, month, day)
  • 创建时间time(hour, minute, second)
python
dt = datetime(2024, 1, 12, 14, 15, 0) d = date(2024, 1, 12) t = time(14, 15, 0) print(dt) print(d) print(t)

4. 字符串和日期之间的转换

  • 字符串转日期datetime.strptime(date_string, format)
  • 日期转字符串datetime.strftime(format)
python
# 字符串转日期 dt = datetime.strptime('2024-01-12 14:15', '%Y-%m-%d %H:%M') # 日期转字符串 date_str = dt.strftime('%Y-%m-%d %H:%M') print(dt) print(date_str)

5. 日期加减操作

  • 使用 timedelta 可以对日期进行加减操作:
python
# 日期加减 today = date.today() yesterday = today - timedelta(days=1) tomorrow = today + timedelta(days=1) print(yesterday, tomorrow)

6. 日期时间的属性

  • 年份datetime.year
  • 月份datetime.month
  • 日期datetime.day
  • 小时datetime.hour
  • 分钟datetime.minute
  • datetime.second
python
now = datetime.now() print(now.year, now.month, now.day, now.hour, now.minute, now.second)

7. 比较日期和时间

可以使用运算符 ==, !=, <, >, <=, >= 进行日期和时间的比较:

python
date1 = datetime(2024, 1, 12) date2 = datetime(2023, 12, 31) print(date1 > date2) # True

8. 获取星期几

  • 使用 weekday() 获取星期几(周一为 0,周日为 6)
  • 使用 isoweekday() 获取星期几(周一为 1,周日为 7)
python
today = date.today() print(today.weekday()) # 0-6,0表示周一 print(today.isoweekday()) # 1-7,1表示周一

9. 时间戳与日期时间转换

  • 时间戳转日期时间datetime.fromtimestamp(timestamp)
  • 日期时间转时间戳datetime.timestamp()
python
# 时间戳转日期时间 timestamp = 1609459200 # 对应2021-01-01 00:00:00 dt = datetime.fromtimestamp(timestamp) # 日期时间转时间戳 timestamp = datetime.now().timestamp() print(dt) print(timestamp)

10. 获取日期差

  • 可以直接相减,得到 timedelta 对象。
python
date1 = datetime(2024, 1, 12) date2 = datetime(2023, 12, 31) delta = date1 - date2 print(delta.days) # 差几天

11.获取开始时间到结束时间内所有的月份

要获取从 start_dateend_date 的所有月份,可以使用 datetime 模块循环生成每个月的日期。以下是一个示例代码:

python
from datetime import datetime, timedelta start_date = datetime.strptime('2017-09', '%Y-%m') end_date = datetime.today() # 创建一个列表保存月份 months = [] # 使用循环获取每个月份 current_date = start_date while current_date <= end_date: months.append(current_date.strftime('%Y%m')) # 增加一个月 if current_date.month == 12: current_date = current_date.replace(year=current_date.year + 1, month=1) else: current_date = current_date.replace(month=current_date.month + 1) print(months)

解释

  • 代码从 start_date 开始,每次增加一个月,直到 end_date
  • 如果当前月份是 12 月,则年份加 1 并将月份设置为 1 月;否则直接加 1 个月。

输出示例

python
['201709', '201710', '201711', ..., '202411']

本文作者:皓月归尘

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!