【python基础】python 日期格式数据常见操作

devtools/2025/1/11 16:42:44/

在 Python 中,处理日期和时间格式的数据通常依赖于 datetime 模块。这个模块提供了多种方法来解析、操作和格式化日期和时间。以下是一些常见的操作示例,包括日期和时间的解析、格式化、比较、加减等。

1. 导入 datetime 模块

python">import datetime

2. 获取当前日期和时间

2.1 获取当前日期和时间
python">now = datetime.datetime.now()
print(now)  # 输出: 当前日期和时间,例如:2025-01-09 14:30:15.123456
2.2 获取当前日期
python">today = datetime.date.today()
print(today)  # 输出: 当前日期,例如:2025-01-09
2.3 获取当前时间
python">current_time = datetime.datetime.now().time()
print(current_time)  # 输出: 当前时间,例如:14:30:15.123456

3. 创建日期和时间对象

3.1 创建日期对象
python">d = datetime.date(2025, 1, 9)
print(d)  # 输出: 2025-01-09
3.2 创建时间对象
python">t = datetime.time(14, 30, 15)
print(t)  # 输出: 14:30:15
3.3 创建日期时间对象
python">dt = datetime.datetime(2025, 1, 9, 14, 30, 15)
print(dt)  # 输出: 2025-01-09 14:30:15

4. 格式化日期和时间

4.1 使用 strftime 格式化日期和时间

strftime 方法用于将 datetime 对象转换为指定格式的字符串。

python">now = datetime.datetime.now()# 常用格式化符号:
# %Y - 年(4位数)
# %m - 月(01-12)
# %d - 日(01-31)
# %H - 小时(00-23)
# %M - 分钟(00-59)
# %S - 秒(00-59)formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)  # 输出: 2025-01-09 14:30:15
4.2 常见格式化符号
符号说明
%Y年(四位数)
%m月(01-12)
%d日(01-31)
%H小时(00-23)
%M分钟(00-59)
%S秒(00-59)
%a星期几的简写(Mon)
%A星期几的全称(Monday)
%b月份的简写(Jan)
%B月份的全称(January)
4.3 格式化为自定义格式
python">now = datetime.datetime.now()
formatted_date = now.strftime("%Y年%m月%d日 %H:%M:%S")
print(formatted_date)  # 输出: 2025年01月09日 14:30:15

5. 解析日期字符串

5.1 使用 strptime 解析字符串为 datetime 对象

strptime 方法可以将日期字符串解析为 datetime 对象。

python">date_string = "2025-01-09 14:30:15"
date_object = datetime.datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(date_object)  # 输出: 2025-01-09 14:30:15

6. 日期加减操作

6.1 加减日期时间

可以使用 timedelta 对象进行日期加减操作。timedelta 表示两个日期/时间之间的差值。

python"># 当前日期
today = datetime.date.today()# 创建一个 timedelta 对象
delta = datetime.timedelta(days=5)# 日期加 5 天
new_date = today + delta
print(new_date)  # 输出: 2025-01-14# 日期减 5 天
new_date = today - delta
print(new_date)  # 输出: 2025-01-04
6.2 时间加减
python"># 当前时间
now = datetime.datetime.now()# 创建一个 timedelta 对象,表示 2 小时
delta = datetime.timedelta(hours=2)# 时间加 2 小时
new_time = now + delta
print(new_time)  # 输出: 当前时间 + 2 小时# 时间减 2 小时
new_time = now - delta
print(new_time)  # 输出: 当前时间 - 2 小时

7. 日期和时间的比较

你可以使用常规的比较操作符(<, >, ==, !=, <=, >=)对 datetime 对象进行比较。

python">dt1 = datetime.datetime(2025, 1, 9, 14, 30, 15)
dt2 = datetime.datetime(2025, 1, 9, 15, 30, 15)# 比较两个日期时间对象
print(dt1 < dt2)  # 输出: True
print(dt1 == dt2)  # 输出: False

8. 获取日期的星期几

8.1 获取星期几(数字形式)
python">today = datetime.date.today()# 获取星期几,返回 0-6 (0: Monday, 6: Sunday)
weekday = today.weekday()
print(weekday)  # 输出: 3 (星期四)
8.2 获取星期几(字符串形式)
python">today = datetime.date.today()# 获取星期几的名字
day_name = today.strftime("%A")
print(day_name)  # 输出: Thursday

9. 获取一个月的天数

python"># 获取 2025 年 2 月的天数
import calendardays_in_month = calendar.monthrange(2025, 2)[1]
print(days_in_month)  # 输出: 28

10. 常见的日期和时间格式

  • ISO 8601 格式
    datetime 对象可以通过 isoformat() 方法转换为 ISO 格式的字符串:

    python">now = datetime.datetime.now()
    iso_format = now.isoformat()
    print(iso_format)  # 输出: 2025-01-09T14:30:15.123456
    
  • Unix 时间戳(自1970年1月1日起的秒数):

    python">now = datetime.datetime.now()
    timestamp = now.timestamp()
    print(timestamp)  # 输出: 1673253015.123456
    

总结

  • 使用 datetime 模块可以方便地进行日期和时间的创建、格式化、解析和操作。
  • 常见操作包括获取当前时间、格式化日期、日期加减、比较日期等。
  • strptimestrftime 分别用于解析和格式化日期。
  • timedelta 用于日期和时间的加减。

这些是 Python 中处理日期和时间格式数据的常见方法。如果有任何进一步的操作需求或问题,欢迎继续提问!


http://www.ppmy.cn/devtools/149655.html

相关文章

关于大一上的总结

大一上总结 前言 源于学长们都喜欢写总结&#xff0c;今晚也正好听见一首有点触动心灵的歌&#xff0c;深有感慨&#xff0c;故来此写下这篇总结 正文 1.暑假前的准备 暑假之前姑且还是学习了基本的C语法&#xff0c;大概是到了结构体的地方&#xff0c;进度很慢&#xff0…

C#语言的多线程编程

C#语言的多线程编程 引言 在现代的计算机应用中&#xff0c;性能和用户体验变得越来越重要。随着计算机硬件技术的发展&#xff0c;多核处理器的普及使得程序的并行处理成为可能。多线程编程作为实现程序并发执行的重要手段&#xff0c;能够有效提高程序的响应速度和执行效率…

走进 JavaScript 世界:掌握核心技能

目录 一、引言 二、JavaScript 基础 &#xff08;一&#xff09;历史与特点 脚本语言 与 HTML 和 CSS 紧密结合 事件驱动和异步执行 &#xff08;二&#xff09;语法基础 变量与数据类型 运算符与表达式 控制结构 条件语句 循环语句 &#xff08;三&#xff09;函…

Python基于YOLOv8和OpenCV实现车道线和车辆检测

使用YOLOv8&#xff08;You Only Look Once&#xff09;和OpenCV实现车道线和车辆检测&#xff0c;目标是创建一个可以检测道路上的车道并识别车辆的系统&#xff0c;并估计它们与摄像头的距离。该项目结合了计算机视觉技术和深度学习物体检测。 1、系统主要功能 车道检测&am…

机器人技术:ModbusTCP转CCLINKIE网关应用

在当今自动化生产与智能制造领域&#xff0c;ModbusTCP转CC-LinkIE网关KJ-MTCPZ-CCIES的应用正日益成为提升生产效率、实现设备间高效通信的重要技术手段。这一转换技术不仅打破了不同通信协议间的壁垒&#xff0c;还为机器人产品的应用提供了更为广阔的舞台。ModbusTCP作为一种…

MySQL笔记大总结20250108

Day2 1.where (1)关系运算符 select * from info where id>1; select * from info where id1; select * from info where id>1; select * from info where id!1;(2)逻辑运算符 select * from info where name"吴佩奇" and age19; select * from info wh…

车载软件架构 --- 关于ARXML文件那点事

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

常见的http状态码 + ResponseEntity

常见的http状态码 ResponseStatus(HttpStatus.CREATED) 是 Spring Framework 中的注解&#xff0c;用于指定 HTTP 响应状态码。 1. 基本说明 HttpStatus.CREATED 对应 HTTP 状态码 201表示请求成功且创建了新的资源通常用于 POST 请求的处理方法上 2. 使用场景和示例 基本…