python中如何把datetime.datetime转换成datetime.time?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中如何把datetime.datetime转换成datetime.time?相关的知识,希望对你有一定的参考价值。

具体是这样
我现在有一个datetime.time类型的参数,需要和现在时间作比较,有什么好的办法?

用Python实现字符串和日期相互转换的方法,具体如下:这里用的分别是time和datetime函数来处理 importtime,datetime //日期转化为字符串 #datetostr //输出时间 printtime.strftime("%Y-%m-%d%X",time.localtime()) #strtodate //字符串转化为日期 t=time.strptime("2016-12-05","%Y-%m-%d") y,m,d=t[0:3] //输出时间 printdatetime.datetime(y,m,d) 参考技术A 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
两者的类型发生了变化:
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

以上是关于python中如何把datetime.datetime转换成datetime.time?的主要内容,如果未能解决你的问题,请参考以下文章

从 50 列中选择

python构造数据1_column.py

使用 Python 发送电子邮件

在python3中如何把文本转换为二进制

Python中如何把程序放到后台执行

python中如何把相邻的字符交换位置