python将小时数换成分钟_如何在Python中将datetime.timedelta转换为分钟、小时?
沒有用于timedelta對象的內(nèi)置格式化程序,但您自己很容易做到:days, seconds = duration.days, duration.seconds
hours = days * 24 + seconds // 3600
minutes = (seconds % 3600) // 60
seconds = seconds % 60
或者,等價地說,如果您使用的是Python 2.7+或3.2+:seconds = duration.total_seconds()
hours = seconds // 3600
minutes = (seconds % 3600) // 60
seconds = seconds % 60
現(xiàn)在您可以按需打印:'{} minutes, {} hours'.format(minutes, hours)
例如:def convert_timedelta(duration):
days, seconds = duration.days, duration.seconds
hours = days * 24 + seconds // 3600
minutes = (seconds % 3600) // 60
seconds = (seconds % 60)
return hours, minutes, seconds
td = datetime.timedelta(2, 7743, 12345)
hours, minutes, seconds = convert_timedelta(td)
print '{} minutes, {} hours'.format(minutes, hours)
這將打印:9 minutes, 50 hours
如果你想得到“10分鐘,1小時”而不是“10分鐘,1小時”,你也需要手動完成:print '{} minute{}, {} hour{}'.format(minutes, 's' if minutes != 1 else '',
hours, 's' if minutes != 1 else '')
或者您可能希望編寫一個english_plural函數(shù)來為您執(zhí)行's'位,而不是重復(fù)您自己。
從你的評論來看,聽起來你真的想把日子分開。更簡單的是:def convert_timedelta(duration):
days, seconds = duration.days, duration.seconds
hours = seconds // 3600
minutes = (seconds % 3600) // 60
seconds = (seconds % 60)
return days, hours, minutes, seconds
如果要將其轉(zhuǎn)換為要存儲在數(shù)據(jù)庫中的單個值,然后將該單個值轉(zhuǎn)換回格式,請執(zhí)行以下操作:def dhms_to_seconds(days, hours, minutes, seconds):
return (((days * 24) + hours) * 60 + minutes) * 60 + seconds
def seconds_to_dhms(seconds):
days = seconds // (3600 * 24)
hours = (seconds // 3600) % 24
minutes = (seconds // 60) % 60
seconds = seconds % 60
return days, hours, minutes, seconds
所以,把它放在一起:def store_timedelta_in_database(thingy, duration):
seconds = dhms_to_seconds(*convert_timedelta(duration))
db.execute('INSERT INTO foo (thingy, duration) VALUES (?, ?)',
thingy, seconds)
db.commit()
def print_timedelta_from_database(thingy):
cur = db.execute('SELECT duration FROM foo WHERE thingy = ?', thingy)
seconds = int(cur.fetchone()[0])
days, hours, minutes, seconds = seconds_to_dhms(seconds)
print '{} took {} minutes, {} hours, {} days'.format(thingy, minutes, hours, days)
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的python将小时数换成分钟_如何在Python中将datetime.timedelta转换为分钟、小时?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MailMail升级到1.0.2.4
- 下一篇: python win32模块详解_pyt