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

【Python 日期和时间】

Python 中处理日期和时间主要依赖 datetime 模块,结合 dateutilpytz 等第三方库可实现更复杂的需求。以下是日期和时间处理的核心知识点:


一、基础模块

1. datetime 模块
  • 核心类:datetime, date, time, timedelta
  • 安装依赖:
    pip install python-dateutil pytz  # 推荐安装增强库
    

二、基础操作

1. 获取当前时间
from datetime import datetime, date, timenow = datetime.now()      # 当前日期时间 → 2025-05-04 14:30:00.123456
today = date.today()      # 当前日期 → 2025-05-04
current_time = time()     # 当前时间 → 14:30:00.123456
2. 创建指定时间
dt = datetime(2025, 5, 4, 14, 30, 0)  # 指定年月日时分秒
3. 时间戳转换
timestamp = datetime.now().timestamp()  # → 1748896200.123456(Unix时间戳)
dt_from_ts = datetime.fromtimestamp(1748896200)  # 时间戳转datetime

三、格式化与解析

1. 格式化输出
now = datetime.now()
formatted = now.strftime("%Y-%m-%d %H:%M:%S")  # → "2025-05-04 14:30:00"

常用格式代码

  • %Y:4位年份(2025)
  • %m:2位月份(01-12)
  • %d:2位日期(01-31)
  • %H:24小时制小时(00-23)
  • %M:分钟(00-59)
  • %S:秒(00-59)
  • %A:星期全称(Monday)
  • %B:月份全称(January)
2. 解析字符串
date_str = "2025-05-04 14:30:00"
dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")

四、时区处理

1. 天真时间(Naive Datetime)
naive_dt = datetime.now()  # 不含时区信息(需谨慎使用)
2. 时区感知时间(Aware Datetime)
# 使用 pytz(推荐)
import pytzny_tz = pytz.timezone("America/New_York")
ny_time = datetime.now(ny_tz)  # → 2025-05-04 02:30:00-04:00(含时区信息)# Python 3.9+ 使用 zoneinfo
from zoneinfo import ZoneInfotokyo_time = datetime.now(ZoneInfo("Asia/Tokyo"))
3. 时区转换
utc_dt = datetime.now(pytz.utc)
local_dt = utc_dt.astimezone(pytz.timezone("Asia/Shanghai"))

五、日期计算

1. 时间差计算
delta = timedelta(days=7, hours=3)
future_dt = now + delta  # 7天3小时后
diff = future_dt - now    # → 7 days, 3:00:00
2. 常用属性
dt = datetime(2025, 5, 4, 14, 30)
dt.year    # → 2025
dt.month   # → 5
dt.weekday()  # → 6(周一=0,周日=6)

六、实际应用场景

1. 定时任务
import schedule
import timedef job():print("定时任务执行...")schedule.every().day.at("10:30").do(job)  # 每天10:30执行while True:schedule.run_pending()time.sleep(1)
2. 日期验证
from dateutil.parser import parsedef is_valid_date(date_str):try:parse(date_str)return Trueexcept ValueError:return False
3. 生成时间戳
# 生成13位毫秒时间戳
timestamp = int(datetime.now().timestamp() * 1000)
4. 性能测试
from datetime import datetimestart = datetime.now()
# 执行需要测试的代码...
end = datetime.now()
print(f"耗时: {end - start}")

七、高级技巧

1. 处理模糊时间
from dateutil.parser import parsedt = parse("2025-05-04 14:30", fuzzy=True)  # 允许部分解析
2. 生成时间范围
import pandas as pddate_range = pd.date_range(start="2025-05-01", end="2025-05-05", freq="D")
# → DatetimeIndex(['2025-05-01', '2025-05-02', ..., '2025-05-05'], dtype='datetime64[ns]', freq='D')
3. 计算年龄
from datetime import datedef calculate_age(birthdate):today = date.today()age = today.year - birthdate.yearif (today.month, today.day) < (birthdate.month, birthdate.day):age -= 1return age

八、常见陷阱

  1. 时区问题

    • 避免混合使用不同时区的时间
    • 始终明确处理时区(不要假设本地时间)
  2. 月份范围

    # 错误示例:datetime(2025, 13, 1) 会报错
    # 正确做法:验证月份范围(1-12)
    
  3. 闰年处理

    # 自动处理闰年(如2月29日)
    dt = datetime(2024, 2, 29)  # 2024是闰年
    dt = datetime(2025, 2, 28) + timedelta(days=1)  # → 2025-03-01
    

通过掌握这些内容,可以高效处理从简单日期显示到复杂时区转换的各种场景。实际应用中需根据需求选择合适的方法,并特别注意时区一致性和日期有效性验证。

相关文章:

【Python 日期和时间】

Python 中处理日期和时间主要依赖 datetime 模块&#xff0c;结合 dateutil 和 pytz 等第三方库可实现更复杂的需求。以下是日期和时间处理的核心知识点&#xff1a; 一、基础模块 1. datetime 模块 核心类&#xff1a;datetime, date, time, timedelta安装依赖&#xff1a;p…...

C#简易Modbus从站仿真器

C#使用NModbus库&#xff0c;编写从站仿真器&#xff0c;支持Modbus TCP访问&#xff0c;支持多个从站地址和动态启用/停用从站&#xff08;模拟离线&#xff09;&#xff0c;支持数据变化&#xff0c;可以很方便实现&#xff0c;最终效果如图所示。 项目采用.net framework 4.…...

FPGA图像处理(四)------ 图像裁剪

timescale 1ns / 1ps // // Description: 图像裁剪算法 // module image_crop(input wire clk,input wire reset,input wire [10:0] img_width,input wire [10:0] img_height,input wire [10:0] img_x_start,input wire [10:0] img_x_end,input wire [10:0] img_y_start,input…...

1.MySQL数据库初体验

1.1数据库简介 1.1.1使用数据库的必要性 使用数据库可以高效且条理分明地存储数据&#xff0c;使人们能够更加迅速、方便地管理数据。 数据库特点&#xff1a; a.可以结构化存储大量地数据信息&#xff0c;方便用户进行有效的检索 b.可以有效地保持数据信息的一致性、完整…...

量子密码的轻量级通信协议笔记

代码笔记 本文档提供了项目代码的详细说明&#xff0c;包括代码结构、关键算法实现和重要的代码片段。 代码结构 . ├── Makefile # 构建系统配置 ├── coap_client.c # CoAP客户端实现 ├── coap_server.c # CoAP服务端实现 ├─…...

探索 C++ 在行业应用与技术融合中的核心价值

引言 在科技飞速发展的今天&#xff0c;C 作为一门兼具高性能与灵活性的编程语言&#xff0c;正深度融入游戏开发、人工智能、区块链等多个关键领域。其高效的内存管理、底层控制能力以及对现代硬件架构的深度优化&#xff0c;使其成为复杂系统开发的首选语言。本文将深入探讨…...

雷赛伺服电机

ACM0经济 编码器17位&#xff1a; ACM1基本 编码器23位磁编&#xff0c; ACM2通用 编码器24位光电&#xff0c; 插头定义&#xff1a;...

word文档基本操作: 编辑页眉页脚和插入目录

文章目录 引言I 编辑页眉页脚II 插入目录III 知识扩展基于axure画架构图基于Knife4j导出接口文档基于PDManer导出数据库设计文档引言 背景: 信息安全认证需要准备相关文件用于审核 一般的开发设计包含总体设计、概要设计、详细设计、接口设计、数据库设计、部署结构设计、原型…...

数据结构(二)——线性表的链式表示和实现

一、单链表 1.单链表的定义 如图所示每个节点包含两个域:数据域和指针域。数据域存储数据元素&#xff0c;指针域存储下一个节点的地址&#xff0c;因此指针指向的类型也是节点类型。每个指针都指向下一个节点&#xff0c;都是朝一个方向的&#xff0c;这样的链表称为单向链表…...

HTML10:iframe内联框架

iframe内部框架 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>内联框架学习</title> </head> <body> <!--iframe内联框架 src:地址 width-height:高度宽度 --> <iframe…...

C++代码随想录刷题知识分享-----数组交集—LeetCode 349

1  题目描述 给定两个整型数组 nums1 和 nums2&#xff0c;请返回它们的交集。 交集中 每个元素必须是唯一的。输出结果的顺序可以任意。 示例输入输出说明1nums1 [1,2,2,1], nums2 [2,2][2]2 只出现一次2nums1 [4,9,5], nums2 [9,4,9,8,4][4,9] 或 [9,4]顺序不作要求…...

Wireshark基本使用

本文会对Wireshark做简单介绍&#xff0c;带大家熟悉一下Wireshark的界面&#xff0c;以及如何使用过滤器。 接着会带大家查看TCP五层模型下&#xff0c;带大家回顾各层首部的格式。 最后会演示 Wireshark 如何抓取三次握手和四次挥手包的过程。 目录 一.Wireshark简介 二…...

学习c语言的链表的概念、操作(另一篇链表的笔记在其他的栏目先看这个)

在学习Linux之间我们先插入一下链表的知识 学习链表&#xff08;一种数据结构思想&#xff09; 链表和数组的区别和实现&#xff1a; 链表&#xff08;链表是个好东西&#xff09; 链表概念&#xff08;什么是链表&#xff09;&#xff1f; 链表就是数据结构->数据的存储…...

快速上手Pytorch Lighting框架 | 深度学习入门

快速上手Pytorch Lighting框架 | 深度学习入门 前言参考官方文档 介绍快速上手基本流程常用接口LightningModule\_\_init\_\_ & setup()\*\_step()configure_callbacks()configure_optimizers()load_from_checkpoint Trainer常用参数 可选接口LoggersTensorBoard Logger Ca…...

ffmpeg多媒体(音视频)处理常用命令

概览 总结一些音视频常用的ffmpeg处理命令&#xff0c;会不断更新&#xff0c;涉及一些重要命令&#xff0c;各位读者也可在评论区不断更新&#xff0c;维护起来&#xff0c;希望可以帮助大家快速解决问题&#xff01; 1、音频相关 1.1 音频信息查看 ffmpeg -i test.wav 该命…...

QT中的网络请求

一、主程序&#xff08;main.cpp&#xff09; #include <QCoreApplication> #include <QNetworkAccessManager> #include <QNetworkReply> #include <QNetworkRequest> #include <QUrlQuery> #include <QJsonDocument> #include <QJso…...

Nacos源码—6.Nacos升级gRPC分析二

大纲 1.Nacos 2.x版本的一些变化 2.客户端升级gRPC发起服务注册 3.服务端进行服务注册时的处理 4.客户端服务发现和服务端处理服务订阅的源码分析 4.客户端服务发现和服务端处理服务订阅的源码分析 (1)Nacos客户端进行服务发现的源码 (2)Nacos服务端处理服务订阅请求的源…...

如何选择自己喜欢的cms

选择内容管理系统cms what is cms1.whatcms.org2.IsItWP.com4.Wappalyzer5.https://builtwith.com/6.https://w3techs.com/7. https://www.netcraft.com/8.onewebtool.com如何在不使用 CMS 检测器的情况下手动检测 CMS 结论 在开始构建自己的数字足迹之前&#xff0c;大多数人会…...

前端面经 作用域和作用域链

含义&#xff1a;JS中变量生效的区域 分类&#xff1a;全局作用域 或者 局部作用域 局部作用域&#xff1a;函数作用域 和 块级作用域ES6 全局作用域:在代码中任何地方都生效 函数中定义函数中生效&#xff0c;函数结束失效 块级作用域 使用let或const 声明 作用域链:JS查…...

开启智能Kubernetes管理新时代:kubectl-ai让操作更简单!

在如今的科技世界中,Kubernetes 已经成为容器编排领域的标杆,几乎所有现代应用的基础设施都离不开它。然而,面对复杂的集群管理和日常运维,许多开发者常常感到无所适从。今天,我们将为大家介绍一款结合了人工智能的强大工具——kubectl-ai。它不仅能帮助开发者更加顺畅地与…...

STM32 ADC

目录 ADC简介 逐次逼近型ADC STM32 ADC框图 输入通道 转换模式 •单次转换&#xff0c;非扫描模式 •连续转换&#xff0c;非扫描模式 •单次转换&#xff0c;扫描模式 •连续转换&#xff0c;扫描模式 触发控制 数据对齐 转换时间 校准 硬件电路 A…...

nextjs站点地图sitemap添加

app/sitemap.xml/route.ts (主站点地图索引) sitemap.xml 为文件夹名称 route.ts代码如下&#xff1a; import { NextResponse } from next/server; import { url } from /config/navigation; export async function GET() {// const entries generateMonthlyEntries();con…...

TCP/IP和OSI对比

​TCP/IP模型的实际特性 ​网络层&#xff08;IP层&#xff09;​ ​仅提供无连接的不可靠服务&#xff1a;TCP/IP模型的网络层核心协议是IP&#xff08;Internet Protocol&#xff09;&#xff0c;其设计是无连接且不可靠的。IP数据包独立传输&#xff0c;不保证顺序、不确认交…...

【hadoop】Hbase java api 案例

代码实现&#xff1a; HBaseConnection.java package com.peizheng.bigdata;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client…...

深入理解Spring缓存注解:@Cacheable与@CacheEvict

在现代应用程序开发中&#xff0c;缓存是提升系统性能的重要手段。Spring框架提供了一套简洁而强大的缓存抽象&#xff0c;其中Cacheable和CacheEvict是两个最常用的注解。本文将深入探讨这两个注解的工作原理、使用场景以及最佳实践。 1. Cacheable注解 基本概念 Cacheable…...

[git]如何关联本地分支和远程分支

主题 本文总结如何关联git本地分支和远程分支的相关知识点。 详情 查看本地分支 git branch 查看远程分支 git branch -r 查看所有分支(本地远程) git branch -a 查看本地分支及其关联的远程分支(如有) git branch -vv 关联本地分支到远程分支&#xff1a; git branch …...

Linux58 ssh服务配置 jumpserver 测试双网卡 为何不能ping通ip地址

判断为NAT模式网卡 能ping 通外网 ens34为仅主机模式网卡 [rootlocalhost network-scripts]# ip route show default default via 10.1.1.254 dev ens33 proto static metric 100 10.0.0.0/8 dev ens33 proto kernel scope link src 10.1.1.37 metric 100 11.0.0.0/8 dev…...

chart.js 柱状图Y轴数据设置起始值

事情的起因&#xff0c; 我以为是&#xff1a; chart.js 柱状图Y轴数据显示不全&#xff0c; 因为数据是浮点数&#xff0c; 换了整数测试还不行&#xff0c; 多次更换数据&#xff0c; 数据显示不全仍然存在&#xff0c; 而且是不固定位置的不显示。 直到相同数据换了折…...

算法题(142):木材加工

审题&#xff1a; 本题需要我们找到可以将木头切割至少k段的单段长度最长值 思路&#xff1a; 方法一&#xff1a;暴力解法 首先我们知道单段长度的最长值就是数组中数据的最大值max&#xff0c;所以我们可以遍历1~max的数据&#xff0c;将他们确定为l&#xff0c;然后计算出当…...

嵌入式学习--江协51单片机day3

今天学的东西挺多的&#xff0c;包括&#xff1a;自己设计的小应用&#xff0c;矩阵键盘&#xff0c;矩阵键盘密码锁&#xff0c;控制按键led流水灯&#xff0c;定时器时钟 &#xff08;那个视频真的煎熬&#xff0c;连续两个1小时的简直要命&#xff0c;那个时钟也是听的似懂…...

Linux命令行参数注入详解

本文主要聚焦 Linux 系统及其 ELF 二进制文件&#xff0c;深入探讨参数注入的原理与防范措施。 核心术语解析 在进入主题之前&#xff0c;我们先厘清几个关键术语&#xff0c;以确保理解的准确性&#xff1a; 参数解析器 当程序被调用时&#xff0c;操作系统会向程序的 main…...

【HCIP】----OSPF综合实验

实验题目 实验需求&#xff1a; 1&#xff0c;R5为ISP&#xff0c;其上只能配置IP地址&#xff1b;R4作为企业边界路由器&#xff0c; 出口公网地址需要通过PPP协议获取&#xff0c;并进行chap认证 2&#xff0c;整个OSPF环境IP基于172.16.0.0/16划分&#xff1b; 3&#xff0…...

C++模板笔记

Cpp模板笔记 文章目录 Cpp模板笔记1. 为什么要定义模板2. 模板的定义2.1 函数模板2.1.1 函数模板的重载2.1.2 头文件与实现文件形式&#xff08;重要&#xff09;2.1.3 模板的特化2.1.4 模板的参数类型2.1.5 成员函数模板2.1.6 使用模板的规则 2.2 类模板2.3 可变参数模板 模板…...

二极管的动态特性

主要内容 二极管的单向导电特性并不十分理想&#xff0c;这是因为二极管的本质是有P型半导体和N型半导体接触形成的PN结。 PN结除了除了构成单向到点的二极管外&#xff0c;还存在一个结电容&#xff0c;这个结电容会导致"双向"导电。 也就是说&#xff0c;这会让二…...

WSL(Windows Subsystem for Linux)入门

目录 1.简介2.安装与配置3.常用命令4.进阶使用4.1 文件系统交互4.2 网络互通4.3 配置代理4.4 运行 GUI 程序4.5 Docker 集成 1.简介 WSL 是 Windows 系统内置的 Linux 兼容层&#xff0c;允许直接在 Windows 中运行 Linux 命令行工具和应用程序&#xff0c;无需虚拟机或双系统…...

k8s术语之secret

在kubernetes中&#xff0c;还存在一种和ConfigMap非常类似的对象&#xff0c;称之为Secret对象。它主要用于存储敏感信息&#xff0c;例如密码、密钥、证书等等。 首先使用base64对数据进行编码 rootmaster pvs ]# echo -n admin | base64 YWRtaW4 实例&#xff1a;隐藏mysql密…...

Vue2 中 el-dialog 封装组件属性不生效的深度解析(附 $attrs、inheritAttrs 原理)

Vue2 中 el-dialog 封装组件属性不生效的深度解析&#xff08;附 $attrs、inheritAttrs 原理&#xff09; 在使用 Vue2 和 Element UI 进行组件封装时&#xff0c;我们常会遇到父组件传入的属性不生效的情况&#xff0c;比如在封装的 el-dialog 组件中传入 width"100%&qu…...

使用Compose编排工具搭建Ghost博客系统

序&#xff1a;需要提前自备一台部署好docker环境的虚拟机&#xff0c;了解并熟练compose编排工具 在Centos7中&#xff0c;在线/离线安装Docker&#xff1a;https://blog.csdn.net/2301_82085712/article/details/147140694 Docker编排工具---Compose的概述及使用&#xff1…...

车载网络TOP20核心概念科普

一、基础协议与总线技术 CAN总线 定义&#xff1a;控制器局域网&#xff0c;采用差分信号传输&#xff0c;速率最高1Mbps&#xff0c;适用于实时控制&#xff08;如动力系统&#xff09;。形象比喻&#xff1a;如同“神经系统”&#xff0c;负责传递关键控制信号。 LIN总线 定…...

机器学习第一讲:机器学习本质:让机器通过数据自动寻找规律

机器学习第一讲&#xff1a;机器学习本质&#xff1a;让机器通过数据自动寻找规律 资料取自《零基础学机器学习》。 查看总目录&#xff1a;学习大纲 一、从婴儿学说话说起 &#x1f476; 想象你教1岁宝宝认「狗」&#xff1a; 第一阶段&#xff1a;指着不同形态的狗&#x…...

Android ImageView 加载 Base64编码图片

在 Android 中显示服务端返回的 Base64 编码的 GIF 图片&#xff08;如 data:image/gif;base64,...&#xff09;&#xff0c;需要以下步骤&#xff1a; 首先从字符串中分离出纯 Base64 部分&#xff08;去掉 data:image/gif;base64, 前缀&#xff09;image/gif 表示图片是 gif…...

如何使用 QuickAPI 推动医院数据共享 —— 基于数据仓库场景的实践

目录 01 医疗行业面临的数据孤岛问题 02 QuickAPI&#xff1a;将 SQL 变为数据 API 的利器 03 快速落地的应用实践 ✅ 步骤一&#xff1a;统一 SQL 逻辑&#xff0c;模块化管理 ✅ 步骤二&#xff1a;配置权限与调用策略 ✅ 步骤三&#xff1a;上线并接入调用 04 核心收…...

【5G通信】bwp和redcap 随手记 2

好的&#xff0c;让我们重新解释Cell-Defined BWP (CD BWP) 和 Non-Cell-Defined BWP (NCD BWP)&#xff0c;并结合RedCap终端和非RedCap终端的应用进行说明。 一、定义 Cell-Defined BWP (CD BWP) 定义&#xff1a;由网络&#xff08;基站&#xff09;通过RRC信令为终端配置的…...

AI时代企业应用系统架构的新思路与CIO变革指南

作为制造企业CIO&#xff0c;我们看问题需要有前瞻性&#xff0c;AI时代企业应用系统架构需要进行全面转型。 一、新思想与新技术 1. 核心新思想 可视化开发AI的融合模式&#xff1a;不再只依赖纯代码开发或传统低代码&#xff0c;而是两者结合&#xff0c;通过AI理解自然语…...

kotlin JvmName注解的作用和用途

1. JvmName 注解的作用 JvmName 是 Kotlin 提供的一个注解&#xff0c;用于在编译为 Java 字节码时自定义生成的类名或方法名。 作用对象&#xff1a; 文件级别&#xff08;整个 .kt 文件&#xff09;函数、属性、类等成员 主要用途&#xff1a; 控制 Kotlin 编译后生成的 JV…...

为什么强调 RESTful 的无状态性?-优雅草卓伊凡

为什么强调 RESTful 的无状态性&#xff1f;-优雅草卓伊凡 RESTful 架构的核心原则之一是 无状态性&#xff08;Statelessness&#xff09;&#xff0c;它要求 每次客户端请求必须包含服务器处理该请求所需的所有信息&#xff0c;服务器不会存储客户端的状态&#xff08;如会话…...

信息系统项目管理工程师备考计算类真题讲解十五

一、决策论问题 分析&#xff1a;首先要明白几个概念&#xff1a; 1&#xff09;最大最大准则&#xff08;Maxmax&#xff09;:也称乐观主义准则&#xff0c;其决策原则为“大中取大” 2&#xff09;最大最小准则&#xff08;Maxmin&#xff09;:也称悲观主义准则&#xff0c…...

android-ndk开发(9): undefined reference to `__aarch64_ldadd4_acq_rel` 报错分析

1. 概要 基础库 libbase.a 基于 android ndk r18b 编译&#xff0c; 被算法库 libfoo.so 和算法库 libbar.a 依赖&#xff0c; 算法库则分别被 libapp1.so 和 libapp2.so 依赖。 libapp1.so 的开发者向 libfoo.so 的开发者反馈了链接报错&#xff1a; error: undefined symb…...

Java 对象克隆(Object Cloning)详解

Java 对象克隆(Object Cloning)详解 对象克隆是指创建一个对象的精确副本,Java 提供了两种克隆方式:浅克隆(Shallow Clone)和深克隆(Deep Clone)。下面从实现原理、使用场景到注意事项全面解析。 一、克隆的基本概念 1. 为什么要克隆? 需要对象副本时避免修改原始对…...

Asp.Net Core IIS发布后PUT、DELETE请求错误405

一、方案1 1、IIS管理器&#xff0c;处理程序映射。 2、找到aspNetCore&#xff0c;双击。点击请求限制...按钮&#xff0c;并在谓词选项卡上&#xff0c;添加两者DELETE和PUT. 二、方案2 打开web.config文件&#xff0c;添加<remove name"WebDAVModule" />&…...