python超详细的日期操作【建议收藏备用】

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: python超详细的日期操作【建议收藏备用】


本文详细介绍了Python中的datetime模块,包括如何获取当前日期和时间、创建特定日期时间、格式化解析、计算、时区处理、时间戳转换以及处理复杂日期字符串等,是开发者高效处理日期时间任务的重要指南。


软件开发中,处理日期和时间是一项常见且关键的任务。Python提供了多个模块来帮助开发者高效地执行与日期和时间相关的操作。我将深入探讨Python中的datetime模块,以及如何使用它来执行各种日期和时间操作。

1. 导入datetime模块

在开始之前,我们需要导入Python的datetime模块。

import datetime

2. 获取当前日期和时间

我们可以用datetime模块来获取当前的日期和时间。

# 获取当前日期和时间
current_datetime = datetime.datetime.now()
print(current_datetime)  # 输出类似于 2023-03-22 17:45:26.172073

3. 仅获取当前日期

如果只需要当前的日期,可以使用date类。

# 获取当前日期
current_date = datetime.date.today()
print(current_date)  # 输出类似于 2023-03-22

4. 创建特定的日期和时间

创建特定的日期和时间实例。

# 创建日期
specific_date = datetime.date(2023, 3, 22)  # 年,月,日
print(specific_date)  # 输出 2023-03-22
# 创建时间
specific_time = datetime.time(14, 30)  # 时,分
print(specific_time)  # 输出 14:30:00
# 创建日期时间
specific_datetime = datetime.datetime(2023, 3, 22, 14, 30)
print(specific_datetime)  # 输出 2023-03-22 14:30:00

5. 日期时间的格式化与解析

格式化日期时间成字符串,或者从字符串解析日期时间。

# 格式化日期时间
formatted_datetime = specific_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_datetime)  # 输出 2023-03-22 14:30:00
# 解析字符串为日期时间
parsed_datetime = datetime.datetime.strptime("2023-03-22 14:30:00", "%Y-%m-%d %H:%M:%S")
print(parsed_datetime)  # 输出 2023-03-22 14:30:00

6. 日期时间的计算

对日期和时间进行加减运算。

# timedelta对象表示两个时间之间的差距
one_day = datetime.timedelta(days=1)
# 日期的加法
tomorrow = current_date + one_day
print(tomorrow)  # 输出当前日期的下一天
# 日期的减法
yesterday = current_date - one_day
print(yesterday)  # 输出当前日期的前一天

7. 获取特定日期时间的属性

可以获取日期时间对象的年、月、日等属性。

# 获取年、月、日、时、分、秒
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(year, month, day, hour, minute, second)  # 输出类似于 2023 3 22 17 45 26

8. 日期时间的替换

替换日期时间对象中的年、月、日等属性。

# 替换年份
new_year_datetime = current_datetime.replace(year=2025)
print(new_year_datetime)  # 输出年份被替换的日期时间
# 替换月份和日
new_month_day_datetime = current_datetime.replace(month=12, day=25)
print(new_month_day_datetime)  # 输出月份和日被替换的日期时间

9. 日期时间之间的比较

比较两个日期时间对象。

# 比较日期时间
is_after = specific_datetime > current_datetime
print(is_after)  # 如果specific_datetime晚于current_datetime,输出True
is_before = specific_datetime < current_datetime
print(is_before)  # 如果specific_datetime早于current_datetime,输出False

10. 获取星期信息

获取日期对应的星期信息。

# 获取星期
weekday = current_date.weekday()  # 返回0-6,对应星期一到星期日
print(weekday)
isoweekday = current_date.isoweekday()  # 返回1-7,对应星期一到星期日
print(isoweekday)

11. 处理时区

使用pytz库处理时区问题。

import pytz
# 设置时区
eastern = pytz.timezone('US/Eastern')
loc_dt = eastern.localize(datetime.datetime(2023, 3, 22, 14, 30))
print(loc_dt)  # 输出带有时区信息的日期时间
# 转换时区
utc_dt = loc_dt.astimezone(pytz.utc)
print(utc_dt)  # 输出转换为UTC时区的日期时间

12. 时间戳与日期时间的转换

将时间戳转换为日期时间,或者将日期时间转换为时间戳。

# 获取当前时间戳
timestamp = datetime.datetime.now().timestamp()
print(timestamp)  # 输出当前时间的时间戳
# 时间戳转为日期时间
datetime_from_timestamp = datetime.datetime.fromtimestamp(timestamp)
print(datetime_from_timestamp)  # 输出由时间戳转换得到的日期时间

13. 结合dateutil解析复杂日期时间字符串

使用dateutil模块解析各种格式的日期时间字符串。

from dateutil import parser
# 解析复杂日期时间字符串
dt = parser.parse("March 22nd, 2023 14:30:00")
print(dt)  # 输出解析后的日期时间

14. 日期时间的算术运算

对日期时间进行算术运算。

# 日期时间的加法
new_datetime = current_datetime + datetime.timedelta(days=10, hours=5)
print(new_datetime)  # 输出当前日期时间加上10天5小时后的结果
# 日期时间的减法
previous_datetime = current_datetime - datetime.timedelta(weeks=2)
print(previous_datetime)  # 输出当前日期时间减去2周后的结果

15. 日期时间的循环与迭代

创建日期时间的序列。

# 创建10天的日期序列
date_list = [current_date + datetime.timedelta(days=x) for x in range(10)]
print(date_list)  # 输出连续10天的日期列表

通过这些基本的操作,=可以对Python中的日期和时间进行高效的处理和计算。掌握这些技能将在处理日志文件、用户数据分析、定时任务调度等场景中发挥重要作用,先收藏吧,别用的时候找不到!。


目录
相关文章
|
1月前
|
Python
Datetime模块应用:Python计算上周周几对应的日期
Datetime模块应用:Python计算上周周几对应的日期
|
1月前
|
Python
Python编程获取当前日期的所属周日期信息
Python编程获取当前日期的所属周日期信息
|
1月前
|
数据挖掘 iOS开发 MacOS
利用Python计算农历日期
利用Python计算农历日期
|
1月前
|
数据处理 Python
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
|
2月前
|
数据挖掘 索引 Python
# Python 判断入参日期是周几
# Python 判断入参日期是周几 原创
|
1月前
|
Python
使用python计算两个日期之前的相差天数,周数
使用python计算两个日期之前的相差天数,周数
35 0
|
6月前
|
调度 Python
Python 日期
Python 日期
43 0
|
2月前
|
数据挖掘 索引 Python
PYTHON 判断入参日期是周几
PYTHON 判断入参日期是周几
|
4月前
|
存储 Python
Python之日期和时间包datetime的使用
1、基本定义 1.1 时间戳 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数(或总毫秒数)。 网上有很多时间戳在线转换工具,可以自行计算验证。
|
3月前
|
Python
【Python】计算两个日期相差天数
使用Python计算两个日期相差天数
49 0