Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python-时间输入和加/减_Python 3.x_Datetime - Fatal编程技术网

Python 3.x Python-时间输入和加/减

Python 3.x Python-时间输入和加/减,python-3.x,datetime,Python 3.x,Datetime,我试图在24小时内获取用户输入,然后对这些输入进行计算(加小时、减小时等)。我有以下几点意见: # get start time start_t = int(input("Start time: ")) print(start_t) # get stop time stop_t = int(input("Stop time: ")) print(stop_t) 这些问题是: 打印时间时,如果有前导零(例如0200),则打印200 当我尝试做任何类型的加法或减法运算时,它都无法正确显示。例如,

我试图在24小时内获取用户输入,然后对这些输入进行计算(加小时、减小时等)。我有以下几点意见:

# get start time
start_t = int(input("Start time: "))
print(start_t)

# get stop time
stop_t = int(input("Stop time: "))
print(stop_t)
这些问题是:

  • 打印时间时,如果有前导零(例如
    0200
    ),则打印
    200

  • 当我尝试做任何类型的加法或减法运算时,它都无法正确显示。例如,如果我在
    2200
    处输入停止时间,并且我希望计算的时间为
    stop\u t-8
    (小时),它将显示
    0
    。我希望它显示
    0000
    。我注意到的另一件事是,如果我执行
    stop\u t-8
    ,它将显示
    2192
    。我必须执行
    停止\u t-800
    以获取
    0
    。这似乎是错误的做法


  • 我想我必须做一些
    datetime
    的工作才能让这一切顺利进行,但到目前为止,我的搜索结果都是空手而归。感谢您的帮助

    input()方法只能从终端获取文本

    必须将文本解析为
    datetime
    对象才能对其进行操作

    例如:

    导入日期时间
    time_format=“%d-%m-%Y%H:%m:%S”#示例01-01-2019 23:00:00
    #开始时间
    开始时间输入=输入(“开始时间:”)
    打印(开始时间输入)
    #停车时间
    停止时间输入=输入(“停止时间:”)
    打印(停止时间输入)
    #转化
    start\u t=datetime.datetime.strtime(开始时间输入,时间格式)
    打印(开始)
    stop\u t=datetime.datetime.strtime(stop\u time\u输入,时间格式)
    打印(停止)
    
    如果
    start\u time\u input
    stop\u time\u input
    不遵守
    time\u格式
    格式,则会出现
    ValueError
    异常

    当你有
    datetime
    对象时,你可以做很多事情,比如减法

    导入日期时间
    开始时间=datetime.datetime.strtime(“01-01-2019 22:00:00”,时间格式)
    stop\u t=datetime.datetime.strtime(“01-01-2019 23:00:00”,时间格式)
    时差=停止-启动
    打印(时差)
    #输出为1:00:00
    

    有关更多功能,请参见datetime libs

    “我想我需要做一些datetime来完成这项工作,但到目前为止,我的搜索结果是空手而归。”=>呃,真的吗???这非常令人惊讶,至少可以这么说,因为“datetime”是处理日期和时间的stdlib模块的确切名称,所以搜索“python datetime”肯定会产生一些结果……我认为这个页面可能会给您一个好的开始:您基本上可以读取字符串,使用
    strptime()将其转换为
    datetime
    对象
    然后使用
    timedelta()
    进行调整。希望这有帮助@Brunodesshuilliers——我想说的是,我的搜索结果显示我需要使用某种datetime函数,但我未能成功地使其工作。也许我应该说得更清楚些。我还在努力想办法解决这个问题,但我想我离这越来越近了。