首页 文章

以特定格式计算python中的经过时间

提问于
浏览
1

我正在尝试编写一个程序来确定与2016年1月1日00:00:00以来经过的秒数相对应的时间和日期 .

但我希望我的结果具体格式 . 即应该是相应的小时(军事时间),分钟,秒,日期,月份名称,年份和星期几(星期日 - 星期六) . 例如,输出应如下所示

23:59:32 2 January 2018 Tuesday

我试着编码这个

import time
start = time.time()
#do something
end = time.time()
temp = end-start
print(temp)
hours = temp//3600
temp = temp - 3600*hours
minutes = temp//60
seconds = temp - 60*minutes
print('%d:%d:%d' %(hours,minutes,seconds))

但我只能得到小时,分钟和秒钟的部分,有什么方法可以得到月,年和周的名字吗?

我也试图处理闰年 . 因为闰年有2 36天29天,29天 . 闰年是可以被4整除的年份,除了可被100整除但不是400的那些 .

2 回答

  • 0

    要格式化日期时间,可以使用strftime() .

    import datetime
    my_time = datetime.datetime(year=2018, month=1, day=2, hour=23, minute=59,second=32)
    print (my_time.strftime("%X %-d %B %Y %A"))
    

    如果要更改格式,请使用this table for reference

  • -1

    你想使用Datetime Module . 处理日期和时间比看起来更棘手!认为Python有内置日期时间处理的好处 . Datetime和timedelta对象占闰年和闰秒,它们处理加法和减法等操作'intuitively' .

    import datetime
    def convert_seconds_since_jan_1(seconds):
        JAN_1_2001 = datetime.datetime(year = 2001, month = 1, day = 1)
        added_time = datetime.timedelta(seconds = seconds)    
        return (JAN_1_2001+added_time)
    

    获取工作日只是字符串格式化的问题 . 请记住,工作日是模数7!

相关问题