python:转换两个字符串h&进入24小时时间格式

时间:2012-11-16 13:43:43

标签: python date methods time module

我有一个带两个变量的方法:

  • 当前时间
  • 分钟

方法非常简单。用户输入两个值,第一个是字符串,例如。 '23:01' 第二个是整数,例如50.因此该方法通过将两者加在一起来计算新时间,因此新时间应为23:51。 我得到这个工作,但是当时间变成24:01 + 60时,它变成25:01,这是一个不正确的时间。 我如何简单地在python中使用time方法来添加时间? 到目前为止,这是我的代码,它会引发错误

import time
class timeCalc(object):
    def nextTime(self, time, minutes):
        t = time.split(':')
        mins = int(t[0]) * 60 + int(t[1]) + minutes
        h = str(mins/60)
        m = str(mins%60)
        if len(h) == 1:
            h = '0' + h
        if len(m) == 1:
            m = '0' + m
        nTime = time.strptime(h + ':' + m, "%H:%M")
        print nTime

ts = timeCalc()
ts.nextTime('23:01',60)

3 个答案:

答案 0 :(得分:3)

您不需要以这种方式解析时间参数,您可以这样做:

Import datetime
class timeCalc(object):
    def nextTime(self, time, minutestoadd):
        base_time = datetime.datetime.strptime(time, "%H:%M")
        minutesobj = datetime.timedelta(minutes = minutestoadd)
        newtime = basetime + minutesobj
        print newtime.time()

第4行:
您将'time'参数格式化为格式为%H的日期时间对象:%M称为base_time
第5行:
您将minutestoadd参数转换为兼容的对象格式以添加
第6行:
两个日期时间对象值的总和
第7行:
以23:40:00左右的格式打印结果

答案 1 :(得分:1)

from datetime import datetime, timedelta

def nextTime(time, minutes):
    return (datetime.strptime(time, '%H:%M') + timedelta(minutes=minutes)).time()

nextTime('23:01', 60)

返回可以打印的datetime.time(0, 1)

nextTime('23:01', 60).strftime('%H:%M')

并返回00:01

答案 2 :(得分:0)

time.localtime(currenttime + 45 * 60))

物联网早点离开你的工作试试这个