Python中的datetime模块

news2024/11/23 19:21:47

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异常。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/786798.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K8s卷存储详解(一)

K8s卷存储详解(一) K8s 存储K8s卷分类K8s目前支持的卷类型 临时卷类型EmptyDirCSI 临时卷通用临时卷 K8s 存储 什么是卷?为什么要用卷? 我们知道K8s是基于容器,对各个Pod进行管理的。Pod是由容器构成的,我…

一图读懂数电票丨发票新时代的机遇与挑战

随着国家“金税4期”的推进,“全电票”近期被正式更名为“数电票”。它的出现为企业的发票管理带来了哪些机遇与挑战?下图为你简单梳理: 数电票的应用,将有助于彻底解决现有业务流程中的发票管理环节存在的集中化和自动化难题。它将推动对发票的管理与企业的业务流程、法务工…

区块链与加密货币在Web3中的融入及意义

Web3是指下一代互联网,也被称为去中心化互联网。它的核心理念是建立一个去中心化的经济和社会系统,使得个人和社区能够更加自治和自主,而不依赖于中心化的机构和权力。 在Web3中,区块链和加密货币是非常重要的技术和概念。区块链是…

not allowed to load local resource解决

问题: 报错:not allowed to load local resource 原因: file协议为本地文件传输协议,浏览器为了安全考虑不允许直接访问。 解决: 方法1:把静态资源放在同一个项目中; 方法2:搭建…

uni-app:点击事件的实现(点击信息,实现页面跳转)

样式: 开始页面: 点击后的页面: 路径展示: 核心代码: 前端点击事件: taptest 页面跳转方法写入: test(){ uni.navigateTo({ url:../start_detail/start_detail?ord…

【软件架构】企业架构4A定义

文章目录 前言战略、BA、DA、AA、TA五者的关系1、业务架构(BA)2、数据架构(DA)3、应用架构(AA)4、技术架构(TA)总结 前言 业务架构是跨系统的业务架构蓝图,应用架构、数…

vue3+elementplus后台管理系统,实现用户登录

目录 1 创建登录页面2 验证用户身份总结 我们的后台管理系统目前已经搭好了一个初步的框架,作为后台系统必备的功能就是用户登录了。我们先问一下chatgpt,实现用户登录需要开发哪些内容。 vue3elementplus实现用户的登录 要实现用户的登录功能&#xff0…

微服务学习笔记-----Nacos安装教程(Windows和Linux版本)

Nacos安装教程 Nacos安装指南1.Windows安装1.1.下载安装包1.2.解压1.3.端口配置1.4.启动1.5.访问 2.Linux安装2.1.安装JDK2.2.上传安装包2.3.解压2.4.端口配置2.5.启动 3.Nacos的依赖 Nacos安装指南 1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的Git…

性能测试如何做?从0到1性能测试实战(手把手教)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 什么是性能测试&a…

[Bug] ls: reading directory ‘.‘: Input/output error, Ubuntu系统某一挂载目录下数据全部消失

ls: reading directory .: Input/output error, Ubuntu系统某一挂载目录下数据全部消失 问题描述解决总结 问题描述 当天下午离开工作地点之前 启动了程序, 第二天早上来公司后发现: 工作目录/home/xxx/workspace下所有的代码文件全部消失, 然后之前运行的程序也是因为找不到代…

LeetCode[315]计算右侧小于当前元素的个数

难度:Hard 题目: 给你一个整数数组 nums ,按要求返回一个新数组 counts 。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 示例 1: 输入:nums [5,2,6,1] 输出&#…

美团圈圈拉新10天7万佣金,是如何做到的?简单轻松易上手

科思创业汇 大家好,这里是科思创业汇,一个轻资产创业孵化平台。赚钱的方式有很多种,我希望在科思创业汇能够给你带来最快乐的那一种! 这两天,美团圆圈火了出来。 1.这个项目是什么? 三月底至四月初&…

easy弹窗默认最大化居中偏左显示问题解决

easy弹窗默认最大化居中偏左显示问题解决 0问题描述1尝试方法10弹窗加top,left 0参数11添加部分方法体 2最后解决方法3记录 0问题描述 如下图,弹窗默认最大化应该覆盖全屏幕,页面大小和屏幕大小是匹配得,但页面位置偏左了。 查看CSS发现整个…

SpringBoot整合RocketMQ 不多说直接上代码

文章目录 依赖yaml配置生产端发送消息消费端异步下单Business生产端消费端 依赖 <!--整合的依赖--> <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.2<…

基础算法-数组模拟栈

栈&#xff1a;先进后出 队列&#xff1a;先进先出 栈 例题&#xff1a; 实现一个栈&#xff0c;栈初始为空&#xff0c;支持四种操作&#xff1a; push x – 向栈顶插入一个数 x&#xff1b;pop – 从栈顶弹出一个数&#xff1b;empty – 判断栈是否为空&#xff1b;query …

正则表达式 —— Grep

文本处理三剑客&#xff1a;Grep、Sed、Awk 这三个工具都是基于对文本的内容进行增删改查的操作&#xff0c;此篇着重介绍grep与正则表达式的应用&#xff0c;以及扩展正则表达式。 正则表达式 什么是正则表达式&#xff1f; 它是由一类特殊字符以及文本字符所编写的一种模式…

【后端面经-Spring】Spring简介

【后端面经-Spring】Spring简介 1. Spring简介2. Spring模块3. Spring核心特性4. Spring的后续拓展面试模拟参考资料 1. Spring简介 Spring是为了简化java项目开发设计的一款设计层面开源框架&#xff0c;其设计目的就是为了“简化开发”。 它使用分层架构&#xff0c;解决业务…

基于Python实现种差值方法

完整资料进入【数字空间】查看——baidu搜索"writebug" 一、种差值方法的实现与问题 三种插值方法都是使用Python自己实现的。 1.1 最近邻插值 寻找每个中心点周围的八个点中有无未丢失的点&#xff0c;如果有的话就赋值为第一个找到的点&#xff0c;如果没有就扩大…

【C语言趣味教程】代码注释:小孩子才做选择,我全都要

【C语言趣味教程】(4) 变量&#xff1a;代码注释 | 变量的声明 | 初始化与赋值 | 作用域与生命周期 | 局部变量与全局变量 &#x1f517; 《C语言趣味教程》&#x1f448; 猛戳订阅&#xff01;&#xff01;&#xff01; ​—— 热门专栏《维生素C语言》的重制版 —— &#x…

MySQL的约束

目录 1.约束&#xff08;constraint&#xff09;的概述 2.约束的分类 1.约束的字段的个数: 2.约束的作用范围: 3.约束的作用/功能 3.如何添加约束 4.如何查看约束 5.非空约束&#xff08;not null&#xff09; 6.唯一性约束&#xff08;unique&#xff09; 7.主键约…