CodeGym /课程 /Python SELF ZH /Python 中日期和时间的基础操作

Python 中日期和时间的基础操作

Python SELF ZH
第 39 级 , 课程 0
可用

日期和时间操作的入门知识

让我们从一个小思考开始:想象一下,如果计算机不能处理日期和时间会怎么样?简直是灾难!我们的最爱小设备将完全没法用于计划任务和自动化操作。让我们一起看看 Python 是如何帮助我们不迟到重要会议,并在日常任务中实现自动化的。

日期和时间操作是编程中不可或缺的一部分,特别是在涉及自动化的时候。设想这样一种情况:你有需要每小时更新的报告,或者需要提醒自己该休息一下了(是的,你已经盯着屏幕 5 小时了!)。Python 提供了许多处理日期和时间的工具,我们将在这次讲座中详细说明。

1. 处理日期和时间的模块

在 Python 中,有几个模块可以使得操作日期和时间更加容易。我们将关注三个主要模块:datetimetimecalendar

  • datetime:可能我们处理日期和时间的主要工作就得靠这个了。它提供了用于操作独立日期、时间以及它们的组合的类。
  • time:这个模块提供了用于处理低级时间表示的函数,通常与系统时间交互。
  • calendar:帮助我们操作日历(嗯,这个挺直白的)。

datetime 模块的主要函数和类

让我们深入了解 datetime 模块并看看它的一些关键组成部分。

date

该类用于处理日期。可以设置和修改年份、月份和天数,而无需绑定到时间。

Python

from datetime import date

# 创建 date 对象
my_birthday = date(1990, 12, 25)
print("我生日的日期:", my_birthday)

time

顾名思义,这个类专注于时间——小时、分钟、秒。非常适合需要单独管理时间而不涉及日期的情况。

Python

from datetime import time

# 创建 time 对象
meeting_time = time(14, 30)  # 14:30
print("会议时间定在:", meeting_time)

datetime

最通用的类,它将日期和时间结合在一起。

Python

from datetime import datetime

# 当前日期和时间
now = datetime.now()
print("当前日期和时间:", now)

2. 使用 datetime 模块获取当前日期和时间

获取当前日期和时间是计划和自动化的基础。在 datetime 中有几个实用的方法可以获取这些信息。

获取当前日期和时间

通过方法 datetime.now()datetime.today(),你可以轻松获得当前日期和时间。

Python

now = datetime.now()
print("当前日期和时间 (now):", now)

today = datetime.today()
print("当前日期 (today):", today)

操作 datetime 对象

datetime 对象允许你提取时间的组成部分,比如年、月、日等等。同时也要注意本地时间和世界标准时间 (UTC) 之间的区别。

Python

year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second

print(f"今天是: {day}/{month}/{year}, 时间是: {hour}:{minute}:{second}")

在实现应用程序时,需要注意本地时间和 UTC 时间之间的差异,因为世界很大,每个人的时钟都可能不一样!

3.实际任务中使用当前日期和时间的示例

假设你需要每小时从某个来源获取数据。这可以通过比较当前时间和上次数据提取的时间轻松实现。比如:

Python

from datetime import timedelta

last_run = datetime.now() - timedelta(hours=1)
current_time = datetime.now()

# 如果上次运行时间超过一个小时
if current_time - last_run > timedelta(hours=1):
    print("是时候更新数据啦!")
    last_run = current_time

这段代码可以很有效地提醒我们只有在超过一个小时的时候才需要做一些事情。注意,这里使用 timedelta 来进行时间的数学运算非常方便。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION