Python中时间字符串转为datetime格式、日期减一、strptime()和strftime()函数

1.时间字符串转为datetime格式

datetime.strptime可以将字符串转换成日期,strptime的第二个参数是时间日期的格式:

import datetime
a = '20200913'
print a
b = datetime.datetime.strptime(str(a), "%Y%m%d")
print b

输出:
2020-09-13
2020-09-13 00:00:00
两者的类型发生了变化:
<type 'str'>
<type 'datetime.datetime'>

2.日期减一

使用datetime.timedelta(),参数是要减去的天数,昨天是减1,前天是减2,以此类推。

import datetime
a = '20200913'
print type(a)
b = datetime.datetime.strptime(str(a), "%Y%m%d")
print type(b)
c = b + datetime.timedelta(days=-1)
print c

输出:
20200913
2020-09-13 00:00:00
2020-09-12 00:00:00

3.日期格式从20200913,自减一天,格式仍为20200912

使用 strftime 将日期转换为字符串,第二个参数是你希望输出的格式。

import datetime
a = '20200913'
print a
b = datetime.datetime.strptime(str(a), "%Y%m%d")
print b
c = b + datetime.timedelta(days=-1)
print c
d = datetime.datetime.strftime(c, "%Y%m%d")
print d

输出:
20200913
2020-09-13 00:00:00
2020-09-12 00:00:00
2020-09-12
20200912

4.常见bug

AttributeError: type object 'datetime.datetime' has no attribute 'timedelta'
代码:
from datetime import datetime
a = '20200913'
print a
b = datetime.strptime(str(a), "%Y%m%d")
print b
c = b + datetime.timedelta(days=-1)
print c

原因:

import 模块:导入一个模块;注:相当于导入的是一个文件夹,是个相对路径。
from…import:导入了一个模块中的一个函数;注:相当于导入的是一个文件夹中的文件,是个绝对路径。
区别是当引用文件时是:
import   //模块.函数
from…import  // 直接使用函数名使用就可以了

这里“from datetime import datetime”从datetime模块引入datetime类,而datetime类中不包含timedelta方法,因此报错。
将“from datetime import datetime” 改为“import datetime”,引入datetime模块,那么在使用strptime时,需要多加一个datetime,写全方法的路径,即:datetime.datetime.strptime(str(a), "%Y%m%d")。
如下:

import datetime
a = '20200913'
print a
b = datetime.datetime.strptime(str(a), "%Y%m%d")
print b
c = b + datetime.timedelta(days=-1)
print c


 

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值