Python中的时间函数:包括日期和时间戳之间的转换、时间格式化等操作。
Python是一种功能强大且灵活的编程语言,拥有许多有用的时间函数。这些函数能够让开发人员对时间进行各种操作,例如转换日期和时间戳、时间格式化等等。在本文中,我们将探讨Python中的时间函数及其用法,以及如何使用这些函数来处理时间。
1. 时间戳
在Python中,时间戳(timestamp)是指从1970年1月1日午夜(格林威治时间)起经过的秒数。Python中可以通过time模块来获取当前的时间戳:
import time
timestamp = time.time()
print("当前时间戳为:", timestamp)
上述代码输出当前的时间戳,结果类似于:
当前时间戳为: 1634532200.123456
2. 格式化时间
Python中的strftime()函数可以将时间戳转换为指定格式的字符串。该函数的用法如下:
import time
timestamp = time.time()
format_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))
print("格式化后的时间为:", format_time)
上述代码将时间戳转换为年-月-日 时:分:秒的格式,结果类似于:
格式化后的时间为: 2021-10-18 12:55:34
strftime()函数中的"%Y"、"%m"、"%d"、"%H"、"%M"、"%S"、"%A"等参数指代不同的时间格式,具体含义见下表:
| 格式 | 含义 |
| :-: | :-: |
| %Y | 年份 |
| %m | 月份 |
| %d | 日 |
| %H | 小时(24小时制)|
| %M | 分钟 |
| %S | 秒 |
| %A | 星期几 |
3. 时间戳转化为时间元组
除了strftime()函数外,Python还提供了一个函数叫做localtime(),可以将时间戳转换成时间元组。时间元组是一个包含9个元素的元组,它们分别是:
| 索引 | 含义 |
| :-: | :-: |
| 0 | 年份 |
| 1 | 月份 |
| 2 | 日 |
| 3 | 小时 |
| 4 | 分钟 |
| 5 | 秒 |
| 6 | 星期几 |
| 7 | 一年中的第几天 |
| 8 | 是否为夏令时 |
下面是一个将时间戳转换为时间元组的示例:
import time
timestamp = time.time()
time_tuple = time.localtime(timestamp)
print("时间元组为:", time_tuple)
上述代码输出的时间元组类似于:
时间元组为: time.struct_time(tm_year=2021, tm_mon=10, tm_mday=18, tm_hour=13, tm_min=6, tm_sec=46, tm_wday=0, tm_yday=291, tm_isdst=0)
4. 时间元组转换为时间戳
如果想要将时间元组转换为时间戳,可以使用time.mktime()函数。以下是一个示例:
import time
time_tuple = (2021, 10, 18, 13, 6, 46, 0, 291, 0)
timestamp = time.mktime(time_tuple)
print("时间戳为:", timestamp)
上述代码输出的时间戳为:
时间戳为: 1634538410.0
5. 睡眠函数
除了获取当前时间、格式化时间等操作,Python的time模块还提供了一个非常常用的操作,那就是使当前线程睡眠一段时间。可以使用time.sleep()函数来实现。该函数的参数为秒数。例如,下面的代码将使当前线程睡眠3秒钟:
import time
print("开始睡眠")
time.sleep(3)
print("结束睡眠")
上述代码输出的结果为:
开始睡眠 结束睡眠
6. 计算程序运行时间
有时候,我们需要知道程序的执行时间,以便优化程序。可以使用time模块中的perf_counter()函数来计算函数的运行时间。以下是一个示例:
import time
start_time = time.perf_counter()
# 你的程序代码
end_time = time.perf_counter()
time_cost = end_time - start_time
print("程序运行时间为:", time_cost, "秒")
以上就是关于Python中时间函数的介绍。Python的时间函数非常丰富,开发者可以根据需求灵活应用。这些函数的用法可以帮助我们更好地理解时间处理知识,在开发中使用时间戳、时间格式化等操作将更加得心应手。
