欢迎访问宙启技术站
智能推送

使用Python的时间模块编写时间相关函数

发布时间:2023-05-26 08:25:37

Python中的时间模块(time module)用于处理与时间相关的功能,例如计时器,计量时间差和时间戳等。在本文中,我们将介绍如何使用Python的时间模块编写时间相关的函数。

1. 获取当前时间戳

获取当前时间戳是很常见的操作。我们可以使用time模块的time()函数来获取当前时间的时间戳,该函数返回从Epoch时间(1970年1月1日UTC,也称为Unix时期)到现在的秒数。

import time
 
def get_current_timestamp():
    return int(time.time())

2. 将时间戳转换为日期时间格式

将时间戳转换为日期时间格式可能是我们在处理数据时经常需要进行的操作之一。我们可以使用time模块的 localtime() 函数将时间戳转换为本地时间(即UTC+8时区)。

import time
 
def timestamp_to_datetime(timestamp):
    return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(timestamp))

上面的函数将时间戳转换为字符串形式的日期时间。

3. 获取当前日期时间

我们可以使用time模块的strftime()函数来将时间格式化为我们想要的形式。 下面的函数将返回当前时间的日期时间,例如2021-10-22 11:25:05。

import time

def get_current_datetime():
    return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))

4. 计算时间差

当我们需要计算两个时间点之间的差异时,我们可以使用time模块的 strptime() 函数将时间格式化为时间元组,然后进行计算。 下面的函数将返回两个时间点之间的时间差。

import time

def calculate_time_diff(t1, t2):
    t1 = time.strptime(t1, '%Y-%m-%d %H:%M:%S') 
    t2 = time.strptime(t2, '%Y-%m-%d %H:%M:%S')
    diff = time.mktime(t1)-time.mktime(t2)
    return diff 

上面的函数将两个时间点都格式化为时间元组后,使用mktime()函数计算两个时间点之间的时间差。

5. 计时器

计时器常用于测量代码块执行的时间。我们可以使用 time 模块的perf_counter()函数来实现计时器,该函数返回CPU计数器的值。 下面的函数将返回代码块的执行时间(以秒为单位)。

import time
 
def stopwatch(func):
    def wrapper(*args, **kwargs):
        start = time.perf_counter()
        result = func(*args, **kwargs)
        end = time.perf_counter()
        print(f'Time elasped:{round(end-start, 5)} seconds')
        return result
    return wrapper

上面的代码定义了一个 stopwatch 装饰器函数,在代码块执行完毕后输出执行时间。

这是一些基础的时间相关的函数,我们可以结合其他Python模块,如datetime模块,创建更强大的时间处理功能。