CodeGym /Java 课程 /Python SELF ZH /使用 datetime 模块

使用 datetime 模块

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

1. 获取当前日期和时间

为什么需要了解它?

众所周知,时间就是金钱。而在编程中,时间意味着控制、计划和自动化。比如,如果你想在特定的时间运行任务或者记录事件日志,你需要知道时间在“滴答滴答”地走着,并学会如何与它互动。

datetime 基础知识

好啦,假设我们开始使用 datetime 库了。别担心,这比造火箭简单得多!让我们先从获取当前日期和时间开始吧:

Python

from datetime import datetime

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

这段代码相当于说:“嘿,datetime,告诉我现在几点了!” 最棒的是,now() 会返回一个包含当前时间所有信息的 datetime 对象,是不是就像一个万事通的教授!

本地时间和世界时间 (UTC)

Ah, UTC——统一时间,无论哪个时区都无法撼动它。如果你想知道火星上的标准时间(嗯,差不多吧),UTC 就是你的选择。来看获取 UTC 时间的方法:

Python

# 获取当前的 UTC 时间
now_utc = datetime.utcnow()
print("当前日期和时间(UTC):", now_utc)

你可能会问,有什么区别呢?本地时间会考虑你的时区,而 UTC 是格林威治时间(与地理位置无关的标准时间)。

提取日期和时间的部分信息

有时,我们并不需要整个日期,而只是它的一部分。就像点披萨只要奶酪一样——虽然听起来不太合理,但偶尔确实有这种需求:

Python

# 提取日期和时间的部分信息
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second

print(f"现在是 {hour}:{minute}:{second} {day}.{month}.{year}")

这样,我们就可以单独处理日期和时间的部分信息了,比如给同事发生日祝福(不过得是他先提醒你哦)。

当前日期和时间的实际应用示例

有时候,你需要编写能处理时间相关的事件的代码。比如,我们创建一个简单的脚本,每到周五都会祝大家周末愉快(谁不爱周五呢?)。

Python

# 使用当前日期的示例,作为每日提醒
if now.weekday() == 4:  # 星期五
    print("耶!今天是星期五,可以放松一下啦!")
else:
    print("再等等,周五还没到呢。")

这个代码使用了 weekday() 方法,返回 0 到 6 的数字(0 表示星期一,6 表示星期天),来检查现在是星期几,并提醒你周末即将来临啦。

2. 操作 datetime 对象

除了知道“此刻的时间”,我们还需要学会如何进行时间的运算或比较。比如,你如何计算自己迟到了多久?

Python

# 示例:计算时间差
from datetime import timedelta

# 创建一个过去的时间
past_date = datetime(2023, 1, 1, 10, 0, 0)

# 计算当前时间与过去时间的差值
difference = now - past_date
print(f"从那天起已经过去 {difference.days} 天和 {difference.seconds // 3600} 小时。")

在这里,我们创建了一个过去的日期并与当前时间进行比较。新年过去了多少天?现在你知道了!

3. 时区处理

datetime 中处理时区需要使用 pytz 库,它可以将日期和时间转换为指定的时区。

使用 pytz 的示例

Python

from datetime import datetime
import pytz

# 获取当前的 UTC 时间
utc_now = datetime.now(pytz.utc)
print("当前日期和时间(UTC):", utc_now)

# 转换为另一个时区(例如,美国太平洋时间)
pacific_now = utc_now.astimezone(pytz.timezone("US/Pacific"))
print("当前日期和时间(Pacific Time):", pacific_now)

输出结果:


当前日期和时间(UTC): 2024-11-04 14:53:27.123456+00:00
当前日期和时间(Pacific Time): 2024-11-04 06:53:27.123456-08:00
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION