Python中的时间函数datetime.timedelta()

Python中的时间函数

时间上的加减

getday() 返回在某年某月某日的基础上加n天后的年月日

import datetime
import json
import random
import time
import string

def getday(y=2017, m=8, d=15, n=1):
    the_date = datetime.datetime(y,m,d)
    result_date = the_date + datetime.timedelta(days=n)  #加n天后的日期
    d = result_date.strftime('%Y%m%d')  #格式化成字符串形式
    year = int(d[:4])
    month = int(d[4:6])
    day = int(d[6:8])
    return d,(year,month,day)
 
d, _ = getday(2022,10,11, 20)

获取n小时后的时间

def get_later_time(cur_time, n):
    '''
    :param cur_time: 当前时间 如2022040810  年月日时
    :param n: 单位为 h, 获取n小时后的时间
    :return:
    '''
    the_date = datetime.datetime.strptime(cur_time, '%Y%m%d%H')
    result_date = the_date + datetime.timedelta(hour=n)
    d = result_date.strftime('%Y%m%d%H')
    return d

获取hours小时,minutes分钟后的时间。

the_date = datetime.datetime.strptime(cur_time, '%Y%m%d%H%M%S')
print(the_date)
##datetime.timedelta() 进行时间上的加减,参数可以是(days,hours,minutes,seconds)等
result_date = the_date + datetime.timedelta(hours=2,minutes =20)   
print(result_date)

函数说明:class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

获取 d 天 h小时 m分钟 s秒之前的时间

def get_before_time(cur_time):
    '''

    :param cur_time: 当前时间 如20221012013130  年月日时分秒
    :param duration:
    :return: h小时 m分钟 s秒之前的时间
    '''
    d =random.randint(0,1)
    h = random.randint(0, 23)
    m = random.randint(0, 59)
    s = random.randint(0, 59)
    the_date = datetime.datetime.strptime(cur_time, '%Y%m%d%H%M%S')
    result_date = the_date - datetime.timedelta(days=d,hours=h,minutes=m,seconds=s)
    result = result_date.strftime('%Y%m%d%H%M%S')
    return result

获取 y年m月d天之前或之后的时间

from dateutil.relativedelta import relativedelta

def get_before_time(cur_time):
    y=random.randint(0,10)
    m=random.randint(0,12)
    d =random.randint(0,30)
    
    the_date = datetime.datetime.strptime(cur_time, '%Y%m%d')
    result_date = the_date - relativedelta(years=y,months=m,days=d) #加n天后的日期
    result= result_date.strftime('%Y%m%d')  #格式化成字符串形式
    return result
 def get_later_time(cur_time):
    y=random.randint(0,30)
    m=random.randint(0,12)
    d =random.randint(0,30)
    
    the_date = datetime.datetime.strptime(cur_time, '%Y%m%d')
    result_date = the_date + relativedelta(years=y,months=m,days=d) #加n天后的日期
    result= result_date.strftime('%Y%m%d')  #格式化成字符串形式
    return result
MINTIME = datetime.datetime(1990, 1, 1).strftime('%Y%m%d') # 设置时间范围的开始时间
built_time = get_later_time(MINTIME)
print(built_time)
#输出结果:20081227

以时间格式输出:

cur_time='20220909221050'
the_date = datetime.datetime.strptime(cur_time, '%Y%m%d%H%M%S') #转成时间格式
print(the_date)
# 输出结果:2022-09-09 22:10:50
result = the_date.strftime('%Y%m%d%H%M%S')  #转成字符串
print(result[:4])
# 输出结果:2022
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值