Python获取时间带毫秒
在编程中,我们经常需要获取当前的时间,如果我们需要获取更精确的时间,包括毫秒,则需要使用特定的方法来获取。Python提供了几种方法来获取当前时间,其中一种方法是使用datetime模块来获取当前时间,并使用strftime()方法将时间格式化为需要的形式,包括毫秒。
1. 使用datetime模块
Python的datetime模块是处理日期和时间的标准库之一。我们可以使用该模块来获取当前的时间,并将时间格式化为带有毫秒的字符串。下面是一个示例代码:
from datetime import datetime
current_time = datetime.now()
formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]
print(formatted_time)
上述代码中,我们首先导入了datetime模块,然后使用datetime.now()
方法获取当前的时间。接下来,我们使用strftime()
方法将时间格式化为一个字符串。在这个例子中,%Y
表示年份,%m
表示月份,%d
表示天数,%H
表示小时,%M
表示分钟,%S
表示秒数,%f
表示毫秒。最后,我们使用[:-3]
来去除字符串中的最后三位,以去除多余的零。最后,我们打印出格式化后的时间。
运行上述代码,你将会得到一个类似于2021-01-01 12:00:00.123
的时间字符串,其中123
表示毫秒。
2. 使用time模块
除了datetime模块,Python还提供了time模块来处理时间。我们可以使用该模块的time()
方法来获取当前的时间戳,然后使用strftime()
方法将时间戳格式化为需要的形式。
下面是一个示例代码:
import time
current_time = time.time()
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(current_time))
millisecond = int((current_time - int(current_time)) * 1000)
formatted_time_with_millisecond = f"{formatted_time}.{millisecond:03}"
print(formatted_time_with_millisecond)
在上述代码中,我们首先导入了time模块。然后,我们使用time()
方法获取当前的时间戳,时间戳表示从1970年1月1日午夜开始到现在经过的秒数。接下来,我们使用strftime()
方法将时间戳格式化为一个字符串。在这个例子中,%Y
表示年份,%m
表示月份,%d
表示天数,%H
表示小时,%M
表示分钟,%S
表示秒数。然后,我们使用(current_time - int(current_time)) * 1000
计算出毫秒,并将其转换为整数。最后,我们使用字符串格式化来组合毫秒和格式化的时间字符串,并打印出结果。
运行上述代码,你将会得到一个类似于2021-01-01 12:00:00.123
的时间字符串,其中123
表示毫秒。
3. 性能比较
当然,在实际应用中,我们需要考虑获取时间的性能。为了比较使用datetime模块和time模块获取时间的性能,我们可以编写一个简单的性能测试。下面是一个示例代码:
import datetime
import time
iterations = 100000
# 使用datetime模块获取时间
start_time = datetime.datetime.now()
for _ in range(iterations):
current_time = datetime.datetime.now()
end_time = datetime.datetime.now()
elapsed_time = end_time - start_time
print(f"Using datetime: {elapsed_time}")
# 使用time模块获取时间
start_time = time.time()
for _ in range(iterations):
current_time = time.time()
end_time = time.time()
elapsed_time = end_time - start_time
print(f"Using time: {elapsed_time}")
在上述代码中,我们定义了一个迭代次数iterations
,然后使用datetime模块和time模块分别获取当前时间,并计算出时间的差值。最后,我们打印出使用两种方法获取时间所花费的时间。
运行上述代码,你将会得到一个性能比较结果,显示使用datetime模块获取时间和使用time模块获取