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

Python中的datetime模块

time模块用于取得UNIX纪元时间戳,并加以处理。但是,如果以方便的格式显示日期,或对日期进行算数运算,就应该使用datetime模块。

 

目录

1. datetime数据类型

1) datetime.datetime.now()表示特定时刻

2)datetime.datetime.fromtimestamp()转换时间戳

3)用于比较操作符

2. timedelta数据类型

1)timedelta数据类型表示一段时间

3. 将datetime对象转换为字符串 —— strftime()方法

4. 将字符串转换成datetime对象 —— strptime()函数


1. datetime数据类型

1) datetime.datetime.now()表示特定时刻

datetime模块有自己的datetime数据类型。datetime值表示一个特定的时刻,如下示例代码:

 调用datetime.datetime.now()返回一个datetime对象,表示当前的日期和时间,根据当前计算机的时钟。这个对象包含当前时刻的年、月、日、时、分、秒和微秒。

也可以利用datetime.datetime()函数,向它传入代表年、月、日、时、分、秒的整数,得到特定时刻的datetime对象。这些整数将保存在datetime对象的year、month、day、hour、minute和second属性中。

2)datetime.datetime.fromtimestamp()转换时间戳

UNIX纪元时间戳可以通过datetime.datetime.fromtimestamp(),转换为datetime对象。

datetime对象的日期和时间将根据本地时区转换,如下示例代码:

由此可看出表达式datetime.datetime.now()和datetime.datetime.fromtimestamp(time.time())做的事情相同,都是返回当前时刻的datetime对象。

3)用于比较操作符

datetime对象可以用比较操作符进行比较,弄清楚谁在前面。后面的datetime对象是“更大”的值,如下:

2. timedelta数据类型

1)timedelta数据类型表示一段时间

datetime模块还提供了timedelta数据类型,表示一段时间,而不是一个时刻:

  • datetime.timedelta()函数创建timedelta对象,此函数接收关键字参数weeks、days、hours、minutes、seconds、milliseconds和microseconds,这些关键字参数都是可选的。没有month和year关键字参数,因为“月”和“年”是可变的时间,依赖于特定月份或年份。
  • timedelta对象拥有的总时间以天、秒、微妙来表示,这些数字分别保存在days、seconds和microseconds属性中。
  • total_seconds()方法用于timedelta对象,返回timedelta对象表示的秒数。
  • 将一个timedelta对象传入str(),将返回格式良好的、人类可读的字符串。

2)进行日期运算

算数运算符可以用于对datetime值进行日期运算。例如,要计算今天之后1000天的日期:

如代码所示,Python将完成日期运算,弄清楚当前日期之后的1000天。这很有用,我们不用记住每个月有多少天、闰年的因素和其他棘手的细节,datetime模块会处理所有这些问题。

利用 + 和 - 运算符,timedelta对象与datetime对象或其他timedelta对象相加或相减。

利用 * 和 / 运算符,timedelta对象可以乘以或除以整数或浮点数。示例如下:

3. 将datetime对象转换为字符串 —— strftime()方法

UNIX纪元时间戳和datetime对象对人类来说都不是很友好可读。利用strftime()方法,可以将datetime对象显示为字符串。( strftime()函数命中的 f 表示格式,format)。

strftime()方法使用的指令类似于Python的字符串格式化。下表列出了完整的strftime()指令:

strftime()指令
strftime指令含义
%Y带世纪的年份,例如'2014'
%y不带世纪的年份,'00''99'19702069
%m数字表示的月份,'01''12'
%B完整的月份,例如'November'
%b简写的月份,例如'Nov'
%d一月中的第几天,'01''31'
%j一年中的第几天,'001''366'
%w一周中的第几天,'0'(周日)至'6'(周六)
%A完整的周几,例如'Monday'
%a简写的周几,例如'Mon'
%H小时(24小时时钟),'00''23'
%I小时(12小时时钟),'01''12'
%M分,'00''59'
%S秒,'00''59'
%p'AM''PM'
%%就是'%'字符

向strftime()传入一个定制的格式字符串,其中包含格式化指定(以及任何需要的斜线、冒号等),strftime()将返回一个格式化的字符串,表示datetime对象的信息。代码如下:

strftime(format)方法返回一个字符串,用format字符串中的定制格式来表示datetime对象表示的时间。

需要注意的是:strftime() 不是以 datetime.datetime 开始。

4. 将字符串转换成datetime对象 —— strptime()函数

如果有一个字符串的日期信息,如'2021/10/21 16:29:00'或'October 21, 2015', 需要转换为datetime对象,就用 datetime.datetime.strptime()函数。

strptime()函数与strftime()方法相反,但定制的格式字符串使用相同的指令,见上表strftime()指令。必须将格式字符串传入strptime(),这样它就知道如何解析和理解日期字符串。

strptime()函数命中的 p 表示解析,parse。示例代码如下:

 strptime()需要传入两个参数,第一个参数是需要转换的字符串,第二个参数是第一个参数对应的定制格式字符串。

datetime.datetime.strptime(time_string, format)函数返回一个datetime对象,它的时刻由time_string指定,利用format字符串参数来解析。

需要注意的是:带有日期信息的字符串必须准确匹配定制的格式字符串,否则Python将抛出ValueError异常。

相关文章:

Python中的datetime模块

time模块用于取得UNIX纪元时间戳,并加以处理。但是,如果以方便的格式显示日期,或对日期进行算数运算,就应该使用datetime模块。 目录 1. datetime数据类型 1) datetime.datetime.now()表示特定时刻 2)da…...

Flutter - 微信朋友圈、十字滑动效果(微博/抖音个人中心效果)

demo 地址: https://github.com/iotjin/jh_flutter_demo 代码不定时更新,请前往github查看最新代码 前言 一般APP都有类似微博/抖音个人中心的效果,支持上下拉刷新,并且顶部有个图片可以下拉放大,图片底部是几个tab,可…...

MySQL检索数据和排序数据

目录 一、select语句 1.检索单个列(SELECT 列名 FROM 表名;) 2.检索多个列(SELECT 列名1,列名2,列名3 FROM 表名;) 3.检索所有的列(SELECT * FROM 表名;) 4.检索不同的行&#x…...

通过STM32内部ADC将烟雾传感器发送的信号值显示在OLED上

一.CubeMX配置 首先我们在CubeMX配置ADC1, 设置一个定时器TIM2定时1s采样一次以及刷新一次OLED, 打开IIC用于驱动OLED显示屏。 二.程序 在Keil5中添加好oled的显示库,以及用来显示的函数、初始化函数、清屏函数等。在主程序中初始化oled,并将其清屏。…...

ZEPHYR 快速开发指南

简介 国内小伙伴在学习zephyr的时候,有以下几个痛点: 学习门槛过高github访问不畅,下载起来比较费劲。 这篇文章将我自己踩的坑介绍一下,顺便给大家优化一些地方,避免掉所有的坑。 首先用virtualbox 来安装一个ubu…...

【FPGA + 串口】功能完备的串口测试模块,三种模式:自发自收、交叉收发、内源

【FPGA 串口】功能完备的串口测试模块,三种模式:自发自收、交叉收发、内源 VIO 控制单元 wire [1:0] mode;vio_uart UART_VIO (.clk(ad9361_l_clk), // input wire clk.probe_out0(mode) // output wire [1 : 0] probe_out0 );将 mod…...

初步了解预训练语言模型BERT

本文字数::4024字 预计阅读时间:12分钟 BERT是由Google提出的预训练语言模型,它基于transformer架构,被广泛应用于自然语言处理领域,是当前自然语言处理领域最流行的预训练模型之一。而了解BERT需要先了解注…...

Android Hook系统 Handler 消息实现

前言 主线程的Handler 主要依赖于 ActivityThread,Android是消息驱动,比如view的刷新,activity的创建等,如果能打印系统层Handler消息日志,就需要对于系统层的Handler 进行Hook 原理 ActivityThread中 mH对象主要负责…...

R语言从入门到精通之【R语言的使用】

系列文章目录 1.R语言从入门到精通之【R语言介绍】 2.R语言从入门到精通之【R语言下载与安装】 3.R语言从入门到精通之【R语言的使用】 文章目录 系列文章目录一、新手上路1.R语句构成2.获取帮助3.工作空间二、包1.包的安装2.实践应用总结一、新手上路 1.R语句构成 R语句由函…...

WPF实战学习笔记29-登录数据绑定,编写登录服务

添加登录绑定字段、命令、方法 修改对象:Mytodo.ViewModels.ViewModels using Mytodo.Service; using Prism.Commands; using Prism.Events; using Prism.Mvvm; using Prism.Services.Dialogs; using System; using System.CodeDom.Compiler; using System.Collec…...

c++函数式编程:统计文件字符串,文件流

头文件 #include <iostream> #include <fstream> #include <string> #include <sstream> #include <algorithm> #include <vector>统计方法 int count_lines(const std::string &filename) {std::ifstream in{filename};return std:…...

scp命令----跨服务器传输文件

scp命令 Linux scp 命令用于 Linux 之间复制文件和目录。 scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 scp 是加密的&#xff0c;rcp 是不加密的&#xff0c;scp 是 rcp 的加强版。 一、Linux scp 命令 以下是scp命令常用的…...

React Dva项目中模仿网络请求数据方法

我们都已经选择react了 那么自然是一个前后端分离的开发形式 至少我在公司中 大部分时候是前后端同时开发的 一般你在开发界面没有接口直接给你 但你可以和后端约定数据格式 然后在前端模拟数据 我们在自己的Dva项目中 在根目录下的 mock 目录下创建一个js文件 我这里叫 filmDa…...

【云原生】Docker容器命令监控+Prometheus监控平台

目录 1.常用命令监控 docker ps docker top docker stats 2.weave scope 1.下载 2.安装 3.访问查询即可 3.Prometheus监控平台 1.部署数据收集器cadvisor 2.部署Prometheus 3.部署可视化平台Gragana 4.进入后台控制台 1.常用命令监控 docker ps [rootlocalhost ~…...

DBA 职责及日常工作职责

DBA 职责及日常工作职责: 1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境. 2.熟悉数据库系统的存储结构预测未来的存储需求,制订数据库的存储方案. 3.根据开发人员设计的应用系统需求创建数据库存储结构. 4.根据开发人员设计的应用系统需求创建数据库对象 5…...

如何利用量化接口进行数据分析和计算?

量化交易作为一种利用数据和算法进行投资的方式&#xff0c;数据分析和计算是量化交易的核心。量化接口作为连接量化交易者和交易所的桥梁&#xff0c;提供了获取市场数据和执行交易指令的功能&#xff0c;为量化交易的数据分析和计算提供了基础。 一、数据获取&#xff1a; 市…...

electron-egg 加密报错

electron框架&#xff1a;electron-egg 解决方式 npm uninstall bytenode npm install bytenode1.3.6node:internal/modules/cjs/loader:928 throw err; ^ Error: Cannot find module ‘node:assert/strict’ Require stack: D:\electron-egg-test\new-electron-egg\electr…...

循环队列的基本操作(3种处理方式,2种实现方式)

为区分队空队满有3种处理方式&#xff1a; ①牺牲一个单元 ②增设表示元素个数的数据成员 ③增设tag数据成员 1.front->队头元素&#xff0c;rear->队尾元素下一位置 1.1牺牲一个单元 1.1.1定义 #define MaxSize 50 typedef struct {ElemType data[MaxSize];int fron…...

react的特点

React的特点包括以下几个方面&#xff1a; 组件化&#xff1a;React将用户界面分解成小而独立的组件&#xff0c;每个组件都有自己的状态和属性。通过组合这些组件&#xff0c;可以构建复杂而灵活的用户界面。 虚拟DOM&#xff1a;React使用虚拟DOM&#xff08;Virtual DOM&am…...

MATLAB实现图像处理:图像识别、去雨、去雾、去噪、去模糊等等(附上20个完整仿真源码)

图像处理是计算机视觉领域的重要研究方向&#xff0c;MATLAB是一种功能强大的数学计算软件&#xff0c;可以用于图像处理和分析。下面是一些简单的MATLAB图像处理代码示例&#xff0c;包括图像增强、边缘检测、形态学处理、特征提取等。 文章目录 1. 图像增强2. 边缘检测3. 形态…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型&#xff0c;它将权限分配给角色&#xff0c;再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...

GraphRAG优化新思路-开源的ROGRAG框架

目前的如微软开源的GraphRAG的工作流程都较为复杂&#xff0c;难以孤立地评估各个组件的贡献&#xff0c;传统的检索方法在处理复杂推理任务时可能不够有效&#xff0c;特别是在需要理解实体间关系或多跳知识的情况下。先说结论&#xff0c;看完后感觉这个框架性能上不会比Grap…...