当前位置: 首页 > news >正文

【python学习】标准库之日期和时间库定义、功能、使用场景和示例

引言

datetime模块最初是由 Alex Martelli 在 Python 2.3 版本引入的,目的是为了解决之前版本中处理日期和时间时存在的限制和不便
datetime模块出现之前,Python 主要使用time模块来处理时间相关的功能,但 time模块主要基于 Unix 纪元时间(即从1970年1月1日开始的秒数),对于复杂的日期和时间操作不够灵活

随着时间的推移,datetime模块经过了多次改进,现在已经成为Python标准库中处理日期和时间相关问题的首选模块

文章目录

  • 引言
  • 一、定义
  • 二、功能
    • 2.1 创建日期和时间对象
    • 2.2 日期和时间运算
    • 2.3 格式化和解析日期和时间
    • 2.4 时间差和时间间隔
  • 三、使用场景
    • 3.1 日期和时间表示
    • 3.2 日期和时间运算
    • 3.3 日期和时间格式化
    • 3.4 时间差和时间间隔
    • 3.5 时区操作
    • 3.6 日期和时间迭代
  • 四、代码示例
    • 4.1 创建日期和时间对象
    • 4.2 从字符串解析日期和时间
    • 4.3 日期和时间运算
    • 4.4 格式化和解析日期和时间
    • 4.5 时间差和时间间隔
    • 4.6 时区操作
  • 五、总结(思维导图)

一、定义

在Python中,日期和时间处理的标准库是datetime模块,它定义了一系列的功能和方法,用于操作和格式化日期和时间

二、功能

2.1 创建日期和时间对象

  • datetime.datetime.now(): 获取当前的日期和时间
  • datetime.datetime.fromtimestamp(timestamp): 从Unix纪元以来的秒数创建日期和时间对象
  • datetime.datetime.utcfromtimestamp(timestamp): 从UTC时区的Unix纪元以来的秒数创建日期和时间对象
  • datetime.datetime.strptime(date_string, format): 从字符串解析日期和时间对象

2.2 日期和时间运算

  • datetime.datetime.date(): 获取日期对象
  • datetime.datetime.time(): 获取时间对象
  • datetime.datetime.timetuple(): 将日期和时间对象转换为元组
  • datetime.datetime.utcoffset(): 获取UTC时区的偏移量

2.3 格式化和解析日期和时间

  • datetime.datetime.strftime(format): 将日期和时间对象格式化为字符串
  • datetime.datetime.strptime(date_string, format): 从字符串解析日期和时间对象

2.4 时间差和时间间隔

  • datetime.timedelta: 表示两个日期和时间之间的差值,可以加减日期和时间

三、使用场景

3.1 日期和时间表示

  • 创建当前日期和时间对象
  • 创建特定日期和时间的对象
  • 从字符串解析日期和时间对象

3.2 日期和时间运算

  • 获取日期和时间对象的时间戳
  • 获取日期和时间对象的UTC偏移量
  • 进行日期和时间的加减运算

3.3 日期和时间格式化

  • 将日期和时间对象格式化为字符串
  • 从字符串解析日期和时间对象

3.4 时间差和时间间隔

  • 计算两个日期和时间之间的差值
  • 进行日期和时间的加减运算

3.5 时区操作

  • 创建时区对象
  • 将日期和时间对象转换为特定时区的日期和时间

3.6 日期和时间迭代

  • 遍历日期和时间对象

这些是datetime模块中的一些基本功能和类,在Python中,日期和时间处理通常使用这个模块,因为它提供了简单、强大的日期和时间操作功能

四、代码示例

4.1 创建日期和时间对象

  • datetime.datetime.now(): 获取当前的日期和时间
from datetime import datetime
now = datetime.now()
print(now)  # 输出: 2023-04-01 12:00:00

4.2 从字符串解析日期和时间

  • datetime.datetime.strptime(date_string, format): 将字符串解析为日期和时间对象
date_string = "2023-04-01 12:00:00"
parsed_datetime = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(parsed_datetime)  # 输出: 2023-04-01 12:00:00

4.3 日期和时间运算

  • datetime.datetime.date(): 获取日期对象
  • datetime.datetime.time(): 获取时间对象
  • datetime.datetime.timetuple(): 将日期和时间对象转换为元组
  • datetime.datetime.utcoffset(): 获取UTC时区的偏移量
now = datetime.now()
date = now.date()
time = now.time()
utcoffset = now.utcoffset()
print(date)  # 输出: 2023-04-01
print(time)  # 输出: 12:00:00
print(utcoffset)  # 输出: datetime.timedelta(0, 14400)

4.4 格式化和解析日期和时间

  • datetime.datetime.strftime(format): 将日期和时间对象格式化为字符串
  • datetime.datetime.strptime(date_string, format): 从字符串解析日期和时间对象
now = datetime.now()
formatted_now = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_now)  # 输出: 2023-04-01 12:00:00

4.5 时间差和时间间隔

  • datetime.timedelta: 表示两个日期和时间之间的差值,可以加减日期和时间
from datetime import timedelta
delta = timedelta(days=1, hours=12)
future_datetime = now + delta
print(future_datetime)  # 输出: 2023-04-02 00:00:00

4.6 时区操作

  • datetime.timezone: 表示时区,可以用于时间转换
  • datetime.datetime.astimezone(): 将日期和时间对象转换为特定时区的日期和时间
from datetime import timezone
utc_time = datetime.now(timezone.utc)
local_time = utc_time.astimezone()
print(utc_time)  # 输出: 2023-04-01 12:00:00+00:00
print(local_time)  # 输出: 2023-04-01 12:00:00

这些是datetime模块中的一些基本功能和方法的代码示例

五、总结(思维导图)

在这里插入图片描述

http://www.lryc.cn/news/400089.html

相关文章:

  • Android --- Kotlin学习之路:基础语法学习笔记
  • 嵌入式智能手表项目实现分享
  • `nmap`模块是一个用于与Nmap安全扫描器交互的库
  • JVM系列 | 对象的创建与存储
  • 【JavaScript 算法】快速排序:高效的排序算法
  • Excel如何才能忽略隐藏行进行复制粘贴?
  • 行人越界检测 越线 越界区域 多边形IOU越界判断
  • 「UCD」浅谈蓝湖Figma交互设计对齐
  • VUE3 播放RTSP实时、回放(NVR录像机)视频流(使用WebRTC)
  • [PaddlePaddle飞桨] PaddleOCR-光学字符识别-小模型部署
  • Python应用开发——30天学习Streamlit Python包进行APP的构建(15):优化性能并为应用程序添加状态
  • python实现openssl的EVP_BytesToKey及AES_256_CBC加解密算法
  • 基于SpringBoot+VueJS+微信小程序技术的图书森林共享小程序设计与实现
  • 【css】image 使用 transform:scale 放大后显示不全的问题
  • 损失函数简介
  • 2023睿抗CAIP-编程技能赛-本科组省赛(c++)
  • 现在国内的ddos攻击趋势怎么样?想了解现在ddos的情况该去哪看?
  • 微服务到底是个什么东东?
  • C++笔试强训5
  • 初学51单片机之UART串口通信
  • 数据结构——查找(线性表的查找与树表的查找)
  • MySQL入门学习-深入索引.组合索引
  • RABBITMQ的本地测试证书生成脚本
  • 记录些Redis题集(4)
  • JVM:垃圾回收器
  • Golang | Leetcode Golang题解之第228题汇总区间
  • 单目3D和bev综述
  • 每日Attention学习11——Lightweight Dilated Bottleneck
  • EM32DX-E4 IO 扩展模块
  • 【数据结构与算法】选择排序篇----详解直接插入排序和哈希排序【图文讲解】