python处理日期参数:把字符串转为datetime对象、月份增减等如何在python中构造时间戳参数 一个日期类型接口参数的构造思路

网友投稿 679 2022-09-05


python处理日期参数:把字符串转为datetime对象、月份增减等如何在python中构造时间戳参数 一个日期类型接口参数的构造思路

最近在写脚本时,遇到了一个关于日期参数的处理问题,大致要求如下

接口传入2个日期,如:开始月份2022-03,结束月份2022-04

我需要获取到如下2个参数:

开始日期前一个月的21号,即2022-02-21 (字符串类型)

结束日期后一个月的20号,即2022-05-21(字符串类型)

因为前端传来的参数是字符串类型,例如"2022-03",我们不能直接对字符串进行加减操作,所以我第一想到的是先把字符串格式的日期转换为日期对象,可以利用​​datetime​​​的​​strptime()​​方法来达到这个目的

import datetimefrom dateutil.relativedelta import relativedeltadate1 = datetime.datetime.strptime("2022-03", "%Y-%m") # 把字符串格式时间转为print("打印date1的值:", date1)print("打印date1的类型:", type(date1))结果如下:打印date1的值: 2022-03-01 00:00:00打印date1的类型:

​​strptime()​​中第一个参数为日期字符串,第二个参数为格式化符号

例如我想把​​"年-月"​​​进行转换,所以对应的格式化符号为​​"%Y-%m"​​

可以看到,​​"2022-03"​​​转换为了​​2022-03-01 00:00:00​​,默认是这个月的第一天0点

获取到日期对象后,我想要获取到上一个月的时间,例如我想得到 ​​2022-02-01​​

这个可以通过 ​​dateutil​​​库的 ​​relativedelta​​方法实现

pre_date1 = date1 - relativedelta(months=1) # 获取date1的上一个月print("打印pre_date1的值:", pre_date1)结果如下:打印pre_date1的值: 2022-02-01 00:00:00

因为我要根据月份进行增减,所以使用​​months​​参数,如果想根据年份增减,

可以使用​​years​​​,还有诸如​​weeks、days、hours​​等

这样就获取到了上个月1号的日期对象 ​​2022-02-01 00:00:00​​

接下来我要获取​​ 2022-02-21​​

可以通过​​datetime​​​的​​timedelta​​方法对日期进行偏移,往后偏移20天即可,

然后使用​​strftime()​​方法转为字符串

pre_date1_day = (pre_date1 + datetime.timedelta(days=+20)).strftime("%Y-%m-%d")print("打印pre_date1_day的值:", pre_date1_day)结果如下:打印pre_date1_day的值: 2022-02-21

可以通过同样的方法获取到 ​​2022-05-21​​

其他python处理日期相关的文章

如何在python中构造时间戳参数

一个日期类型接口参数的构造思路


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【天鹰优化算法】基于天鹰优化算法求解单目标优化问题附matlab代码
下一篇:Python学习笔记|选择与循环练习题(python循环基础题)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~