Python3  日期和时间
                           
天天向上
发布: 2025-03-16 12:52:30

原创
532 人浏览过

在 Python3 中,日期和时间的处理通常使用 datetime 模块。这个模块提供了处理日期和时间的丰富功能,包括获取当前时间、时间计算、格式化日期和时间等。以下是一些常见的操作和技巧。

1. 导入 datetime 模块

import datetime

2. 获取当前日期和时间

2.1 获取当前日期和时间(包含日期和时间)

可以使用 datetime.now() 获取当前的日期和时间。

import datetime

current_datetime = datetime.datetime.now()
print(current_datetime)

输出示例:

2025-03-16 12:34:56.789123

2.2 获取当前日期

如果只需要当前日期而不需要时间,可以使用 date.today() 方法。

current_date = datetime.date.today()
print(current_date)

输出示例:

2025-03-16

2.3 获取当前时间

如果只需要当前时间而不需要日期,可以使用 datetime.now().time()

current_time = datetime.datetime.now().time()
print(current_time)

输出示例:

12:34:56.789123

3. 创建日期和时间对象

3.1 创建日期对象

你可以使用 datetime.date(year, month, day) 来创建一个日期对象。

my_date = datetime.date(2025, 3, 16)
print(my_date)

输出:

2025-03-16

3.2 创建时间对象

你可以使用 datetime.time(hour, minute, second) 来创建一个时间对象。

my_time = datetime.time(12, 34, 56)
print(my_time)

输出:

12:34:56

3.3 创建日期时间对象

你可以使用 datetime.datetime(year, month, day, hour, minute, second) 来创建一个日期时间对象。

my_datetime = datetime.datetime(2025, 3, 16, 12, 34, 56)
print(my_datetime)

输出:

2025-03-16 12:34:56

4. 日期和时间的格式化

4.1 格式化日期时间

使用 strftime(format) 方法可以将日期时间对象转换为指定格式的字符串。

now = datetime.datetime.now()

# 格式化日期和时间
formatted_datetime = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_datetime)

输出:

2025-03-16 12:34:56

strftime 使用格式字符串来定义输出格式,常用的格式符号包括:

  • %Y — 年(四位数)
  • %m — 月(两位数)
  • %d — 日(两位数)
  • %H — 小时(24小时制)
  • %M — 分钟
  • %S — 秒
  • %A — 星期几(完整的名字,如 Monday)
  • %B — 月份的全名(如 January)

4.2 格式化日期

如果只需要日期部分,可以使用以下格式:

now = datetime.datetime.now()

# 格式化日期
formatted_date = now.strftime("%Y-%m-%d")
print(formatted_date)

输出:

2025-03-16

5. 解析日期时间字符串

使用 strptime() 方法将字符串解析为日期时间对象。

date_string = "2025-03-16 12:34:56"
datetime_object = datetime.datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(datetime_object)

输出:

2025-03-16 12:34:56

6. 日期时间计算

6.1 日期和时间的加减

使用 timedelta 对象可以进行日期和时间的加减运算。

from datetime import timedelta

# 当前日期时间
now = datetime.datetime.now()

# 加上 10 天
new_date = now + timedelta(days=10)
print("10 days later:", new_date)

# 减去 5 天
earlier_date = now - timedelta(days=5)
print("5 days ago:", earlier_date)

输出示例:

10 days later: 2025-03-26 12:34:56.789123
5 days ago: 2025-03-11 12:34:56.789123

6.2 计算两个日期之间的差距

你可以通过减去两个日期时间对象,得到一个 timedelta 对象,表示两个日期之间的差异。

from datetime import timedelta

# 当前日期时间
now = datetime.datetime.now()

# 另一个日期
past_date = datetime.datetime(2025, 1, 1)

# 计算两个日期之间的差距
difference = now - past_date
print("Days difference:", difference.days)

输出示例:

Days difference: 74

7. 获取日期和时间的其他组件

你可以通过 datetime 对象访问日期和时间的具体部分,如年、月、日、时、分、秒。

now = datetime.datetime.now()

# 获取年、月、日、时、分、秒
print("Year:", now.year)
print("Month:", now.month)
print("Day:", now.day)
print("Hour:", now.hour)
print("Minute:", now.minute)
print("Second:", now.second)

输出示例:

Year: 2025
Month: 3
Day: 16
Hour: 12
Minute: 34
Second: 56

8. 时区处理

datetime 模块的 timezone 类可以用于时区处理。如果你需要处理带时区的日期时间对象,可以使用 pytz 库(Python 标准库不直接支持时区的转换)。

import pytz
from datetime import datetime

# 创建时区对象
timezone = pytz.timezone("Asia/Shanghai")

# 获取带时区的当前时间
now_in_timezone = datetime.now(timezone)
print(now_in_timezone)

总结

  • 使用 datetime.datetime.now() 获取当前日期和时间。
  • 使用 datetime.date.today() 获取当前日期,使用 datetime.datetime.now().time() 获取当前时间。
  • strftime() 用于将日期时间对象格式化为字符串,strptime() 用于将字符串解析为日期时间对象。
  • 使用 timedelta 对象进行日期时间的加减运算。
  • 可以通过 .year, .month, .day 等属性访问日期时间的各个组成部分。

datetime 模块提供了强大的日期时间处理功能,适合各种日期和时间相关的操作。更多详细内容请关注其他相关文章!

发表回复 0

Your email address will not be published. Required fields are marked *