python指定时间格式提前或者延后时间计算

近期小编在测试的过程中需要填写时间然后出来自动的时间换算,同时需要的字符串是带有转义字符的,代码如下:

import json
import time
import datetime
def repalce_time1(time1,time2,time3,time4):
    str = '{\"prepareVocabularyList\":\"320,508,513\",\"finishVocabularyList\":\"320,508,513\",\"showTime\":1666195200000,\"timeList\":[{\"title\":\"初赛1\",\"startTime\":1666925460000,\"endTime\":1666924440000,\"testType\":2,\"areaId\":1,\"questionBankNum\":\"369,377,373\"},{\"title\":\"初赛1复活赛\",\"startTime\":1666925460000,\"endTime\":1666924440000,\"testType\":2,\"areaId\":2,\"questionBankNum\":\"371,379,375\"}]}'
    s = str.rstrip('\\')
    json_str = json.loads(s)
    times = "2022-11-17 17:00:00"
    print(times)
    # 转为时间数组
    timeArray = time.strptime(times, "%Y-%m-%d %H:%M:%S")
    # 转为时间戳
    timeStamp = int(time.mktime(timeArray))
    time_type_2 = timeStamp*1000
    #初赛1 开始时间
    json_str_startTime = time_type_2
    print("开始时间:{},时间戳:{}".format(times,json_str_startTime))

    #初赛1 结束时间
    d = datetime.timedelta(days=0,hours=0,minutes=time1,seconds=0)
    times_end = datetime.datetime.strptime(times,"%Y-%m-%d %H:%M:%S")+d
    times_end_array = time.strptime(times_end.strftime("%Y-%m-%d %H:%M:%S"), "%Y-%m-%d %H:%M:%S")
    timeStamp_times_end = int(time.mktime(times_end_array))
    json_str_endTime = timeStamp_times_end * 1000
    print("结束时间:{},时间戳:{}".format(times_end,json_str_endTime))

    #初赛1复活赛 开始时间
    d1 = datetime.timedelta(days=0, hours=0, minutes=time2, seconds=0)
    times_start_1 = datetime.datetime.strptime(times, "%Y-%m-%d %H:%M:%S") + d1
    times_start_1_array = time.strptime(times_start_1.strftime("%Y-%m-%d %H:%M:%S"), "%Y-%m-%d %H:%M:%S")
    timeStamp_times_start_1 = int(time.mktime(times_start_1_array))
    json_str_startTime_1 = timeStamp_times_start_1 * 1000
    print("复活赛开始时间:{},时间戳:{}".format(times_start_1,json_str_startTime_1))

    # 初赛1复活赛 结束
    d2 = datetime.timedelta(days=0, hours=0, minutes=time3, seconds=0)
    times_end_1 = datetime.datetime.strptime(times, "%Y-%m-%d %H:%M:%S") + d2
    times_end1_array = time.strptime(times_end_1.strftime("%Y-%m-%d %H:%M:%S"), "%Y-%m-%d %H:%M:%S")
    timeStamp_times_end1 = int(time.mktime(times_end1_array))
    json_str_endTime_1 = timeStamp_times_end1 * 1000
    print("复活赛结束时间:{},时间戳:{}".format(times_end_1,json_str_endTime_1))


    #提前10分钟
    d3 = datetime.timedelta(days=0, hours=0, minutes=time4, seconds=0)
    times_10 = datetime.datetime.strptime(times, "%Y-%m-%d %H:%M:%S") + d3
    times_10_array = time.strptime(times_end_1.strftime("%Y-%m-%d %H:%M:%S"), "%Y-%m-%d %H:%M:%S")
    timeStamp_times_10 = int(time.mktime(times_10_array))
    json_str_times_10 = timeStamp_times_10 * 1000
    print("设定时间提前10分钟:{},时间戳:{}".format(times_10, json_str_times_10))

    json_str['timeList'][0]['startTime'] = json_str_startTime
    json_str['timeList'][0]['endTime'] = json_str_endTime
    json_str['timeList'][1]['startTime'] = json_str_startTime_1
    json_str['timeList'][1]['endTime'] = json_str_endTime_1
    short_str = json.dumps(json_str,ensure_ascii=False)
    s_list = list(short_str.split('"'))
    s_new = []
    for i in s_list:
        i = i + "\\"
        s_new.append(i)
    new_json_str = '"'.join(s_new).rstrip('\\')
    print(new_json_str)

repalce_time1(15,20,35,-10)

运行结果:

 因为我需要替换时间的字符串是带转义字符的,所以需要生成带转义字符的字符串,不需要的小伙伴就忽略这一步吧~

希望帮到大家~ 喜欢的点赞哦~❤️❤️❤️❤️❤️❤️❤️❤️❤️

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值