程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在Python中将datetime.timedelta转换为分钟和小时?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在Python中将datetiR_181_11845@e.timedelta转换为分钟和小时??

开发过程中遇到如何在Python中将datetiR_181_11845@e.timedelta转换为分钟和小时?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在Python中将datetiR_181_11845@e.timedelta转换为分钟和小时?的解决方法建议,希望对你解决如何在Python中将datetiR_181_11845@e.timedelta转换为分钟和小时?有所启发或帮助;

没有用于timedelta对象的内置格式化程序,但是你自己可以很容易地做到这一点:

@H_262_6@days, seconds = duration.days, duration.seconds hours = days * 24 + seconds // 3600 minutes = (seconds % 3600) // 60 seconds = seconds % 60

或者,等效地,如果你使用的是Python 2.7+或3.2+:

@H_262_6@seconds = duration.@R_778_10586@l_seconds() hours = seconds // 3600 minutes = (seconds % 3600) // 60 seconds = seconds % 60

现在,你可以根据需要打印它:

@H_262_6@'{} minutes, {} hours'.format(minutes, hours)

例如:

@H_262_6@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 = datetiR_181_11845@e.timedelta(2, 7743, 12345) hours, minutes, seconds = convert_timedelta(td) print '{} minutes, {} hours'.format(minutes, hours)

这将打印:

@H_262_6@9 minutes, 50 hours

如果要获取“ 10分钟1小时”而不是“ 10分钟1小时”,则也需要手动执行此操作:

@H_262_6@print '{} minute{}, {} hour{}'.format(minutes, 's' if minutes != 1 else '', hours, 's' if minutes != 1 else '')

或者,你可能想编写一个english_plural函数’s’为你完成这些操作,而不是重复自己。

你的评论看来,你实际上是想让日子分开。这甚至@R_801_11222@:

@H_262_6@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

如果要将其转换为单个值以存储在数据库中,然后将该单个值转换回以对其进行格式化,请执行以下操作:

@H_262_6@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

因此,将其放在一起:

@H_262_6@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)

解决方法

我得到这样的开始日期:

@H_262_6@from django.utils.timezone import utc import datetiR_181_11845@e start_date = datetiR_181_11845@e.datetiR_181_11845@e.utcnow().replace(tzinfo=utC) END_DATE = datetiR_181_11845@e.datetiR_181_11845@e.utcnow().replace(tzinfo=utC) duration = END_DATE - start_date

我得到这样的输出:

@H_262_6@datetiR_181_11845@e.timedelta(0,5,41038)

如何将其转换为正常时间,如下所示?

10分钟1个小时是这样的

大佬总结

以上是大佬教程为你收集整理的如何在Python中将datetime.timedelta转换为分钟和小时?全部内容,希望文章能够帮你解决如何在Python中将datetime.timedelta转换为分钟和小时?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。