任何语言都有关于时间操作的模块!python也不例外,但是python的时间操作模块感觉特别混乱。好几个模块能实现相同的功能,这里把容易混淆的知识点记录下。
strftime()函数返回值是字符串。
time.strftime(arg1,arg2)。arg1是格式化字符串,arg2是time.struct_time类型。
datetime.datetime.strftime(arg1,arg2)。arg1是格式化字符串,arg2是datetime.datetime类型。
time.strptime(arg1,arg2)函数返回值是time.struct_time对象。
datetime.datetime.strptime(arg1,arg2)是datetime.datetime类型,arg1是字符串,arg2是格式化字符串。
import time
import datetime
print(" 以下是time模块-----")
t = time.time()
print('t---',t,type(t))
local_time = time.localtime()
print('local_time---',local_time,type(local_time))
print("转为字符串",time.strftime('%Y-%m-%d',local_time))
print("转为time.struct_time对象",time.strptime("2018-12-12","%Y-%m-%d"))
print(" 以下是datetime模块-----")
t2 = datetime.datetime.fromtimestamp(t)
print('t2---',t2,type(t2))
print(t2.strftime('%Y-%m-%d'))
t3 = datetime.datetime.strptime('2019-4-4', '%Y-%m-%d')
print('t3---',t3,type(t3))
t4 = datetime.datetime.strftime(t3,'%Y-%m-%d')
print('t4---',t4,type(t4))
t = datetime.datetime.now().strftime('%Y-%m-%d')
print('t----',t,type(t))
print(time.strptime(t,'%Y-%m-%d'))
print(" 以下是根据差值求时间--")
now = datetime.datetime.now()
print(now,type(now))
day3_ago = datetime.datetime.now() - datetime.timedelta(days=3)
print(day3_ago,type(day3_ago))
res = day3_ago.strftime('%Y-%m-%d')
print(res,type(res))
print("根据datetime模块求时间差")
starttime = datetime.datetime.now()
time.sleep(2)
endtime = datetime.datetime.now()
print((endtime - starttime).days)
print((endtime - starttime).seconds)
D:installpython3python.exe D:/pyscript/test/test.py
以下是time模块-----
t--- 1558938059.2712169
local_time--- time.struct_time(tm_year=2019, tm_mon=5, tm_mday=27, tm_hour=14, tm_min=20, tm_sec=59, tm_wday=0, tm_yday=147, tm_isdst=0)
转为字符串 2019-05-27
转为time.struct_time对象 time.struct_time(tm_year=2018, tm_mon=12, tm_mday=12, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=346, tm_isdst=-1)
以下是datetime模块-----
t2--- 2019-05-27 14:20:59.271217
2019-05-27
t3--- 2019-04-04 00:00:00
t4--- 2019-04-04
t---- 2019-05-27
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=27, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=147, tm_isdst=-1)
以下是根据差值求时间--
2019-05-27 14:20:59.281216
2019-05-24 14:20:59.281216
2019-05-24
根据datetime模块求时间差
0
2
Process finished with exit code 0