来源:python中国网 时间:2019-06-06

  任何语言都有关于时间操作的模块!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 <class "float">
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) <class "time.struct_time">
转为字符串 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 <class "datetime.datetime">
2019-05-27
t3--- 2019-04-04 00:00:00 <class "datetime.datetime">
t4--- 2019-04-04 <class "str">
t---- 2019-05-27 <class "str">
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 <class "datetime.datetime">
2019-05-24 14:20:59.281216 <class "datetime.datetime">
2019-05-24 <class "str">
根据datetime模块求时间差
0
2
<class "datetime.datetime">

Process finished with exit code 0