python中string,time,datetime三者之间的转化

时间:2021-12-28 06:09:17

这里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)