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,下...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/736687

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数