十个 Python 时间日期实用函数

2024年 5月 15日 72.0k 0

今天,我们将携手走进Python世界的“时空隧道”,探索那个神秘而强大的神器——datetime模块。它就像一台精密的魔法时钟,能帮助我们精准地操纵、计算与格式化各种时间日期数据。接下来,让我们一起掌握这台时钟的10大实用秘技,让你在编程世界中随心所欲地驾驭时间!

十个 Python 时间日期实用函数-1

秘技一:初始化时间日期对象

在Python中,我们有三种主要的时间日期对象:date(只包含年、月、日)、time(只包含时、分、秒、微秒)和datetime(包含全部信息)。初始化它们就像填写一张时间卡片:

from datetime import datetime, date, time

# 创建一个datetime对象
now = datetime.now()  # 获取当前日期时间
print(now)

# 创建一个date对象
new_year = date(2023, 1, 1)  # 定义2023年元旦
print(new_year)

# 创建一个time对象
midnight = time(hour=0, minute=0, second=0)  # 定义午夜时刻
print(midnight)

秘技二:从字符串解析时间日期

生活中遇到的时间字符串五花八门?别担心,datetime.strptime()函数能将它们统统转化为标准时间对象:

from datetime import datetime

# 解析字符串为datetime对象
birthday_str = "1998-07-4"
birthday_date = datetime.strptime(birthday_str, "%Y-%m-%d")
print(birthday_date)

# 解析复杂格式的字符串
event_str = "2022/06/½7 15:30:45 PM"
event_time = datetime.strptime(event_str, "%Y/%m/%d %I:%M:%S %p")
print(event_time)

秘技三:时间日期对象的操作与比较

如同操作普通数值一样,datetime对象支持加减运算,可以轻松计算时间差、偏移日期等。同时,通过比较操作符,我们可以判断时间先后:

from datetime import timedelta, datetime

# 计算未来一周的时间
one_week_later = datetime.now() + timedelta(weeks=1)
print(one_week_later)

# 比较两个时间点
meeting_start = datetime(2022, ¼, 1, 10, 0)
meeting_end = datetime(2022, 4, 1, 11, 30)
is_meeting_overdue = meeting_start > meeting_end
print(is_meeting_overdue)  # 输出:False

秘技四:格式化输出时间日期

有了时间对象,如何优雅地展示给用户?strftime()函数能将时间对象转化为符合特定格式的字符串:

from datetime import datetime

current_time = datetime.now()

# 格式化输出
formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_time)

# 更多格式选项:
# %Y - 四位数年份
# %m - 两位数月份
# %d - 两位数日期
# %H - 24小时制小时数
# %M - 分钟数
# %S - 秒数
# ...

秘技五:获取本地时间与UTC时间

datetime模块提供了便捷方法获取本地时间和协调世界时(UTC),确保你的程序在全球范围内准确运行:

from datetime import datetime

# 获取当前本地时间
local_time = datetime.now()
print(local_time)

# 获取当前UTC时间
utc_time = datetime.utcnow()
print(utc_time)

秘技六:时区转换

跨越时区?没问题!借助pytz库(需额外安装),你可以轻松进行时区转换:

import pytz
from datetime import datetime

# 创建一个UTC时间对象
utc_now = datetime.now(pytz.utc)
print(utc_now)

# 转换到纽约时区
new_york_tz = pytz.timezone('America/New_York')
ny_time = utc_now.astimezone(new_york_tz)
print(ny_time)

秘技七:计算时间间隔

想知道两个时间点之间相隔多久?total_seconds()方法助你快速得到结果:

from datetime import datetime, timedelta

start_time = datetime(2022, 4, 1, 9, 0)
end_time = datetime(2022, 4, 1, 17, 30)

duration = end_time - start_time
print(duration.total_seconds())  # 输出:31800.0 (即9小时30分钟)

秘技八:获取特定日期属性

想单独提取日期或时间对象的某一部分(如年份、小时等)?直接访问其属性即可:

from datetime import datetime

current_datetime = datetime.now()

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

print(f"Year: {year}, Month: {month}, Day: {day}")
print(f"Hour: {hour}, Minute: {minute}, Second: {second}")

秘技九:获取当前时间戳

有时你需要将时间转化为Unix时间戳(自1970年1月1日以来的秒数)。timestamp()方法帮你一键搞定:

from datetime import datetime

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

秘技十:处理闰年、季度、星期

datetime模块还提供了判断闰年、计算季度、获取星期的方法,丰富你的时间处理工具箱:

from datetime import datetime

leap_year_test = datetime(2024, 1, 1).is_leap_year()
print(leap_year_test)  # 输出:True

current_quarter = datetime.now().quarter
print(current_quarter)  # 输出:2 (当前季度)

current_weekday = datetime.now().weekday()
print(current_weekday)  # 输出:3 (星期四,0代表周一)

结语

恭喜你,现在你已掌握datetime模块的10大实用秘技,无论是初始化时间对象、解析字符串、操作比较、格式化输出,还是处理时区、计算间隔、获取属性、转化时间戳,乃至处理闰年、季度、星期,都能游刃有余。带上这台神奇的Python魔法时钟,去编程世界里畅快地穿越时空吧!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论