python3日期时间运算_逐步学习python3(也适合小学生)第28章:Python日期时间模块,一步,Python3,适用,第二十八,篇,Pythondatetime,下...

本文主要是介绍python3日期时间运算_逐步学习python3(也适合小学生)第28章:Python日期时间模块,一步,Python3,适用,第二十八,篇,Pythondatetime,下...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这一篇我们继续来学习datetime模块中的timedelta类。

四、datetime.timedelta类

timedelta表示两个时间的间隔

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

参数默认值为0的,代表参数都可选。

from datetime import datetime

from datetime import timedelta

today = datetime.today()

print(today)

print(today + timedelta(days=1,hours=5))

print(today + timedelta(weeks=1))

运行结果:

2020-11-08 17:46:33.148467

2020-11-09 22:46:33.148467

2020-11-15 17:46:33.148467

datetime.timedelta()参数可选,weeks=1添加7天

from datetime import datetime,date

from datetime import timedelta

#获取上个月第一天和最后一天

today = datetime.today()

print(today)

mlast_day = date(today.year, today.month, 1) - timedelta(days=1)

mfirst_day = date(mlast_day.year, mlast_day.month,1)

print(mlast_day)

print(mfirst_day)

运行结果:

2020-11-08 18:01:13.606740

2020-10-31

2020-10-01

完美的求得了上一个月的第一天和最后一天。我们更改一下代码,看能不能求出2020-1-1前一个月的第一天和最后一天

获取上一个月第一天和最后一天

from datetime import datetime,date

from datetime import timedelta

#获取上个月第一天和最后一天

today = date(2020,1,1)

print(today)

mlast_day = date(today.year, today.month, 1) - timedelta(1)

mfirst_day = date(mlast_day.year, mlast_day.month,1)

print(mlast_day)

print(mfirst_day)

运行结果:

2020-01-01

2019-12-31

2019-12-01

非常有用的技巧,不要问我为什么,因为在一个项目中,用了错误的方法,写了好大一段代码

获取时间差

from datetime import datetime,timedelta

import time

start_time = datetime.now()

time.sleep(2)

end_time = datetime.now()

d_time = end_time - start_time

print(start_time)

print(end_time)

print(d_time)

print(d_time.microseconds)

print(d_time.seconds)

运行结果:

2020-11-08 18:17:19.424877

2020-11-08 18:17:21.425810

0:00:02.000933

933

2

由上可以看到,时间差能到微秒

from datetime import datetime,date

from datetime import timedelta

today = date.today()

print(today)

today_weekday = today.isoweekday()

print(today_weekday)

last_sunday = today - timedelta(days = today_weekday)

last_monday = last_sunday -timedelta(days=6)

print(last_sunday)

print(last_monday)

运行结果:

2020-11-08

7

2020-11-01

2020-10-26

计算指定日期当月最后一天的日期和本月天数

from datetime import datetime,date

from datetime import timedelta

date1 = date(2020,12,25)

date2 = date(2020,9,1)

def last_day_month(date_obj):

if date_obj.month == 12:

first_day_next_month = date(date_obj.year+1, 1, 1)

else:

first_day_next_month = date(date_obj.year, date_obj.month+1, 1)

last_day_this_month = first_day_next_month - timedelta(days=1)

return last_day_this_month

last_day_this_month = last_day_month(date1)

print(last_day_this_month)

print(last_day_this_month.day)

last_day_this_month = last_day_month(date2)

print(last_day_this_month)

print(last_day_this_month.day)

运行结果:

2020-12-31

31

2020-09-30

30

五、时间日期格式化strftime和strptime

strftime

根据区域设置格式化本地时间/日间,将时间格式化为表示时间的字符串str。这样在的项目显示端,可以有多种形式的时间日期样式,比如: 2020/11/8或者2020-11-8或者20-11-8等等。

datetime.strftime("%Y-%m-%d")

#显示的格式为:2020-11-8

strptime

按时物定的时间格式将字符串转化为时间类型

datetime.strptime(datetime_str,'%Y-%m-%d')

我们在转化时,都会用到时间日期格式化符号,如上面的%Y,%m,%d

下表为Python时间日期格式化符号:

符号

说明

%y

两位数的年份表示(00-99)

%Y

四位数的年份表示(000-9999)

%m

月份(01-12)

%d

月内中的一天(0-31)

%H

24小时制小时数(0-23)

%I

12小时制小时数(01-12)

%M

分钟数(00=59)

%S

秒(00-59)

%a

本地简化星期名称

%A

本地完整星期名称

%b

本地简化的月份名称

%B

本地完整的月份名称

%c

本地相应的日期表示和时间表示

%j

年内的一天(001-366)

%p

本地A.M.或P.M.的等价符

%U

一年中的星期数(00-53)星期天为星期的开始

%w

星期(0-6),星期天为星期的开始

%W

一年中的星期数(00-53)星期一为星期的开始

%x

本地相应的日期表示

%X

本地相应的时间表示

%Z

当前时区的名称

%%

%号本身

from datetime import datetime,date

date_str='2020-11-8'

date1 = datetime.strptime(date_str,'%Y-%m-%d')

print(date1)

print(type(date1))

运行结果:

2020-11-08 00:00:00

我们把date_str,字符串时间格式转换成了datetime.datetime格式

再看一个例子:

from datetime import datetime,date

date_str='2020-11-8'

date1 = datetime.strptime(date_str,'%Y/%m/%d')

print(date1)

print(type(date1))

直接报错了

cf2fc9d7873ec29d8da7c57df578d07a.png

由上述错误我们可知,date_str和‘%Y-%m-%d’格式必须一致才能转换

我们再来把datetime.datetime转换为时间字符串str

from datetime import datetime,date

today = datetime.today()

print(today)

print(today.strftime('%Y/%m/%d %H:%M-%S'))

print(today.strftime('%Y/%m/%d'))

print(today.strftime('%d %b %Y'))

print(today.strftime('%d %b %Y , %a'))

print(today.strftime('%d %B %Y , %A'))

运行结果:

2020-11-08 20:13:39.227386

2020/11/08 20:13-39

2020/11/08

08 Nov 2020

08 Nov 2020 , Sun

08 November 2020 , Sunday

由示例代码我们可以看出,日期时间格式datetime.datetime我们可以组合出各种日期时间格式的字符串

结束语:

至此,我们已经把datetime模块学完,非常重要的一个时间模块。多练练就好了。

更多Python知识请关注公从号:老树Python

这篇关于python3日期时间运算_逐步学习python3(也适合小学生)第28章:Python日期时间模块,一步,Python3,适用,第二十八,篇,Pythondatetime,下...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixin_30582943/article/details/114406768
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/736687

相关文章

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核