时间方面的编程在开发过程中是很常见的,而Python提供了datetime
和time
这两个关于时间的模块。接下来,我们将讨论这两个模块中的函数有什么区别。
time
模块:
如果你想要获取当前的本地时间,那么首先你需要运行time.time()
来获取当下的时间戳。
import time
#获取目前的时间戳
time.time()
#输出: 1715254313.7382145
需要注意的是,该时间戳单位是秒(s),不是毫秒(ms)。
然后你需要格式化得到的时间戳,最后才能得到你想要的时间格式,比如%Y-%m-%d %H:%M:%S
。
time.localtime(time.time())
#输出: time.struct_time(tm_year=2024, tm_mon=5, tm_mday=9, tm_hour=19, tm_min=34, tm_sec=54, tm_wday=3, tm_yday=130, tm_isdst=0)
time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
#输出: '2024-05-09 19:37:54'
在效率方面,运行time.time()
100000000次需要花费5.5秒的时间
start = time.time()
for _ in range(100000000):
pass
end = time.time()
print("%.2f 秒"%(end-start))
#输出: 5.50 秒
datetime
模块:
在本模块中,想要获取当前本地时间,你首先需要运行datetime.datetime.now()
,这会返回一个关于当前时间的datetime
对象。
import datetime
datetime.datetime.now()
#输出: datetime.datetime(2024, 5, 9, 19, 43, 9, 36941)
接着你可以将得到的这个datetime对象转化成字符串,并设置成你想要的时间格式,如%Y-%m-%d %H:%M:%S。
datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
#输出: '2024-05-09 19:44:48'
在效率方面,运行datetime.datetime.now()
100000000次花了5秒的时间
start = datetime.datetime.now()
while True:
for i in range(100000000):
pass
break
end = datetime.datetime.now()
print(str((end-start).seconds)+"秒")
#输出: 5 秒
可见,用datetime获取当下时间的运行效率略高于用time的。
原文链接:Python time模块与datetime模块的区别
更多Python内容:Python - 弦圈
更多其他精彩内容:弦圈 - 找到属于你的圈子