python将小时数换成分钟_如何在Python中将datetime.timedelta转换为分钟、小时?

没有用于timedelta对象的内置格式化程序,但您自己很容易做到: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

现在您可以按需打印:'{} 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函数来为您执行's'位,而不是重复您自己。

从你的评论来看,听起来你真的想把日子分开。更简单的是: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

如果要将其转换为要存储在数据库中的单个值,然后将该单个值转换回格式,请执行以下操作: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)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Python中将指定时间加一分钟,可以使用Python内置的datetime模块。首先,我们需要导入datetime模块以便使用它提供的函数和类。 然后,我们可以使用datetime模块中的datetime类来创建一个指定时间的实例。假设我们有一个形如"2021-09-01 12:30:00"的时间字符串,我们可以使用datetime类的strptime()函数将其转换datetime实例。 接下来,我们可以使用timedelta类来表示时间间隔,并将其加到原始时间实例上。timedelta类的构造函数可以指定要增加的时间间隔,例如timedelta(minutes=1)表示增加一分钟。然后,我们可以使用datetime实例的加法运算符来将时间间隔添加到原始时间实例上。 最后,我们可以使用datetime实例的strftime()函数将结果格式化为我们想要的时间字符串形式。例如,strftime("%Y-%m-%d %H:%M:%S")可以将datetime实例格式化为"2021-09-01 12:31:00"这样的字符串。 下面是用Python实现的代码示例: ``` import datetime # 指定时间字符串 time_str = "2021-09-01 12:30:00" # 将时间字符串转换datetime实例 time = datetime.datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S") # 时间间隔为一分钟 delta = datetime.timedelta(minutes=1) # 原时间加一分钟 new_time = time + delta # 将新时间格式化为字符串 new_time_str = new_time.strftime("%Y-%m-%d %H:%M:%S") # 打印结果 print("原时间:", time_str) print("增加一分钟后的时间:", new_time_str) ``` 以上代码将会输出: ``` 原时间: 2021-09-01 12:30:00 增加一分钟后的时间: 2021-09-01 12:31:00 ``` 这样,我们就成功地将指定时间加一分钟了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值