Python 时间相关Util

 1. 日期时间戳转换

 1.1 获取当前时间戳

import time
import datetime

# 获得当前时间时间戳
now = int(time.time())
# 1606720960
# 转为时间数组
timeArray = time.localtime(now)
# time.struct_time(tm_year=2020, tm_mon=11, tm_mday=30, tm_hour=15, tm_min=22, tm_sec=40, tm_wday=0, tm_yday=335, tm_isdst=0)
# 转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S"
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
# 2020-11-30 15:22:40

1.2 获取当前时间

# 获得当前时间
now = datetime.datetime.now()
# 2020-11-30 15:27:03.961878
# 转换为指定的格式
otherStyleTime = now.strftime("%Y-%m-%d %H:%M:%S")
# 2020-11-30 15:27:03

1.3 获取昨天日期

def get_yesterday():
    yesterday = datetime.date.today() + datetime.timedelta(days=-1)
    return yesterday

print(get_yesterday())
# 2020-11-29

1.4 获取给定日期之前n天的时间列表

# 返回给定日期之前n天的时间列表
def get_date_list(end_date_str, ndays):
    date_list = []
    end_date = datetime.datetime.strptime(end_date_str, '%Y-%m-%d').date()
    begin_date = end_date + datetime.timedelta(days=-ndays)
    while begin_date < end_date:
        date_str = begin_date.strftime("%Y-%m-%d")
        date_list.append(date_str)
        begin_date += datetime.timedelta(days=1)
    return date_list


tt = get_date_list('2020-11-30', 4)
#  ['2020-11-26', '2020-11-27', '2020-11-28', '2020-11-29']

1.5  日期与UTC时间互转

now_date = datetime.datetime.strptime("2020-11-30", "%Y-%m-%d")
#  2020-11-30 00:00:00
print(now_date.strftime("%Y-%m-%d"))
#  2020-11-30

1.6 获取两日期之间的天数

import datetime
def getDayDiffCnt(start_str, end_str):
    st = datetime.datetime.strptime(start_str, '%Y-%m-%d').date()
    ed = datetime.datetime.strptime(end_str, '%Y-%m-%d').date()
    return (ed-st).days

days = getDayDiffCnt("2021-05-01", "2021-05-06")
print(days)

# 计算间隔多少秒
t1 = datetime.datetime.strptime('2023-11-22 15:54:48', '%Y-%m-%d %H:%M:%S')
t2 = datetime.datetime.strptime('2023-11-22 15:56:28', '%Y-%m-%d %H:%M:%S')
print((t2-t1).seconds)

2. 计算一个函数的耗时

def cst_time(func, *args, **kwargs):
    def wrapper(*args, **kwargs):
        start = time.time()
        ret = func(*args, **kwargs)
        end = time.time()
        time_strap = end - start
        logger.info(
            'function %s running time is %s' % (func.__name__, time_strap))
        return ret
    return wrapper

调用

@cst_time
def post(self, request):
    pass    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值