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

时间:2017-03-28 21:22:36

标签: python

我正在尝试编写一个程序来确定与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 :(得分: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 :(得分:-1)

您想使用Datetime Module。处理日期和时间比看起来更棘手!这就是为什么Python内置日期时间处理的好处。 Datetime和timedelta对象占闰年和闰秒,并且它们直观地处理加法和减法等操作。

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!