【问题标题】:Python3 Calculating Time using datetime?Python3使用日期时间计算时间?
【发布时间】:2017-06-15 14:19:06
【问题描述】:

我想输入开始和结束时间:日期和时间 我想对两个日期之间的经过时间进行计算。

试图了解日期时间、日期、时间、时间增量。 strptime/strftime

如果用户进入; 开始时间:2017,7,15 10:45 am end_time: 2017,7,16 1:30 am

使用差异权重计算小时/分钟: 上午 10:45 -> 晚上 9:00 = 10:15*2 晚上 9:00 -> 凌晨 1:30 = 4:30*2.5

试过这样的:

st_date = date(2017, 6, 15)
st_time = time(10, 45)
start = datetime.combine(st_date, st_time)

end_date = date(2017, 6, 15)
end_time = time(22, 30)
end = datetime.combine(end_date, end_time)

st = datetime.strftime(end, '%Y %B %d %I:%M %p')
et = datetime.strftime(start, '%Y %B %d %I:%M %p')

但这是完全错误的。我无法对 strftime 对象执行操作。您能否为我指明如何进行的正确方向。

【问题讨论】:

    标签: datetime python-3.5


    【解决方案1】:

    我无法对 strftime 对象执行操作。

    strftime 函数返回格式良好的字符串,而不是日期时间对象。如果你是print(st),你会得到2017 June 15 10:45 AM

    如果你想得到两个日期时间对象之间经过的时间,只需将它们相减,如下所示:

    from datetime import date
    from datetime import time
    from datetime import datetime
    
    st_date = date(2017, 6, 15)
    st_time = time(10, 45)
    start = datetime.combine(st_date, st_time)
    
    end_date = date(2017, 6, 15)
    end_time = time(22, 30)
    end = datetime.combine(end_date, end_time)
    
    diff = end - start
    

    这会产生一个timedelta 对象。现在,如果你想要以秒为单位的经过时间,你可以这样做:

    elapsed_time = diff.total_seconds()
    

    【讨论】:

    • 谢谢。日期(int(输入()))
    猜你喜欢
    • 1970-01-01
    • 2020-08-24
    • 2020-07-28
    • 2019-01-24
    • 1970-01-01
    • 2011-09-24
    • 2014-03-04
    • 2018-02-27
    • 1970-01-01
    相关资源
    最近更新 更多