这里time特指import time中的对象,datetime 特指from datetime import datetime中的对象,string指python自带的字符数据类型。
从使用的情况来看,一般从数据库读取来的日期类数据类型主要是datetime,所以在日常使用的过程中应该重点用好datetime。
time和datetime的方法名称很像,只是参数的顺序不一样。使用的时候要格外注意。
1) datetime->string, string->datetime
方法一和方法二都是可以的
from datetime import datetime start_date = datetime(2100, 1, 1, 0, 0, 0)
method1 = start_date.strftime("%Y-%m-%d %H:%M:%S")
>>>'2100-01-01 00:00:00'
method2 = datetime.strftime(start_date,"%Y-%m-%d %H:%M:%S")
>>>'2100-01-01 00:00:00'
# string->datetime 只有一种表述方法,毕竟str并没有strptime这样的方法。
str2datetime = datetime.strptime(method2,"%Y-%m-%d %H:%M:%S")
>>>datetime(2100, 1, 1, 0, 0, 0)
2) time->string,string->time
time更多的是获取自系统时间,time很多方法直接可以将结果转换成string格式,如果需要自定义的话,才会用到strftime方法。time中包含的方法实现了各种数据类型的转换,应用开发的过程中会大量用到。
import time u1 = time.time() u2 = time.localtime() u3 = time.asctime() type(u1) >>> <class 'float'> type(u2) >>> <class 'time.struct_time'> type(u3) >>><class 'str'> condition2 = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
>>>'2018-08-14 14:59:27'
# string 转换成time格式
str2time = time.strptime(condition2,"%Y-%m-%d %H:%M:%S")
>>>time.struct_time(tm_year=2018, tm_mon=8, tm_mday=14, tm_hour=15, tm_min=13, tm_sec=21, tm_wday=1, tm_yday=226, tm_isdst=-1)