相关疑难解决方法(0)

Python格式timedelta到字符串

我是一个Python新手(2周),我在格式化datetime.timedelta对象时遇到了麻烦.

这是我正在尝试做的事情:我有一个对象列表,该对象类的一个成员是一个timedelta对象,显示事件的持续时间.我希望以小时:分钟的格式显示该持续时间.

我已经尝试了各种方法来做到这一点,我遇到了困难.我目前的方法是为我的对象添加方法,返回小时和分钟.我可以通过将timedelta.seconds除以3600并将其四舍五入来获得小时数.我无法获得余数秒并将其转换为分钟.

顺便说一句,我正在使用Google AppEngineDjango Templates进行演示.

如果有人可以帮助或知道更好的解决方法,我会非常高兴.

谢谢,

python string format datetime timedelta

246
推荐指数
19
解决办法
25万
查看次数

使用"import dateutil"和"dateutil.parser.parse()"时的AttributeError,但在使用"from dateutil import parser"时没有问题

我正在使用Python 2.7.3中的dateutil模块.我只是想用:

import dateutil
dateutil.parser.parse("01-02-2013")
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误:

AttributeError: 'module' object has no attribute 'parser'
Run Code Online (Sandbox Code Playgroud)

我查了一下属性dateutil 确实具有:

print dir(dateutil)
# output: ['__author__', '__builtins__', '__doc__', '__file__', '__license__',
#          '__name__', '__package__', '__path__', '__version__']
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试直接导入parserdateutil,它似乎确实存在:

from dateutil import parser
print parser.parse("01-02-2013")
# output: 2013-01-02 00:00:00
Run Code Online (Sandbox Code Playgroud)

之后from dateutil import parser,parser还神奇地出现在了进口dateutil本身:

print dir(dateutil)
# output: ['__author__', '__builtins__', '__doc__', '__file__', '__license__',
#          '__name__', '__package__', '__path__', '__version__', 'parser',
#          'relativedelta', 'tz']
Run Code Online (Sandbox Code Playgroud)

请注意,rrule此列表中仍缺少某些其他属性(如). …

python attributeerror python-2.7 python-dateutil

36
推荐指数
1
解决办法
3万
查看次数

删除 timedelta 对象中的天数

我在 pandas 中有一个列dataframe是在减去两次后创建的。我现在有一个timedelta这样的对象-1 days +02:45:00。我只需要删除 -1 天并希望它是02:45:00。有没有办法做到这一点?

python datetime timedelta pandas

9
推荐指数
1
解决办法
2万
查看次数

Arrow中时间戳的区别

我如何让Arrow返回两个时间戳之间的小时差异?

这就是我所拥有的:

difference = arrow.now() - arrow.get(p.create_time())
print(difference.hour)
Run Code Online (Sandbox Code Playgroud)

p.create_time() 是当前正在运行的进程的创建时间的时间戳.

返回:

AttributeError: 'datetime.timedelta' object has no attribute 'hour'
Run Code Online (Sandbox Code Playgroud)

编辑:我不想要所有三种格式的总时间,我希望它作为余数,例如."3天,4小时,36分钟"不是"3天,72小时,4596分钟"

python datetime arrow-python

8
推荐指数
1
解决办法
6403
查看次数

如何格式化 Pandas timedelta 对象?

我正在使用熊猫 timedelta对象来跟踪体育相关数据集中的分割时间,使用以下类型的构造:

import pandas as pd
pd.to_timedelta("-0:0:1.0")
Run Code Online (Sandbox Code Playgroud)

这本机报告为:

-1 days +23:59:59

我可以使用原始秒数计算,pd.to_timedelta("-0:0:1.0").total_seconds()但如果负数以分钟或小时为单位,那就很笨拙了:

对于表达式:

pd.to_timedelta("-1:2:3.0")
Run Code Online (Sandbox Code Playgroud)

如何从对象中获取格式为"-1:2:3.0, 或的报告,而不是格式(带有浮点错误)或?-1 hour, 2 minutes, 3 secondstimedelta-3723.0000000000005-1 days +22:57:57

timedelta pandas

7
推荐指数
1
解决办法
8575
查看次数

列出 Python 日期时间倒计时(以复数形式表示)

我一直在尝试创建一个函数,使用正确的单词列出日期之间的时间,特别是我希望它能够解释复数。我知道我可以通过 if 语句运行所有数字来做到这一点,但我真的希望找到一种更有效的方法来实现我的目标。

IE:我希望221 days, 1:17:06.996068datetime返回,因为221 days, 1 hour, 17 minutes, and 6.99 seconds.它很重要,它在适当的时候表示日/小时/分钟/秒或天/小时/分钟/秒。

我的代码示例片段:

from datetime import datetime as dt

now = dt.now(tz=None) # Current local computer time
test = dt(2018,3,25,23,0,0) # March 25th, 2018 23h 0m 0s
countdown = test - now
print(countdown) # 2 days, 1:45:00.685739
# Desired outcome: 2 days, 1 hour, 45 minutes, 0.68 seconds.
Run Code Online (Sandbox Code Playgroud)

有没有一种函数可以有效地在单数或复数时间之间进行标记?

python datetime date python-3.x

5
推荐指数
1
解决办法
582
查看次数

从 timedelta 中提取分钟 - Python

我有一个包含 timedelta 的列,我想创建一个额外的列,从 timedelta 列中提取小时和分钟。

df

time_delta          hour_minute
02:51:21.401000     2h:51min
03:10:32.401000     3h:10min
08:46:43.401000     08h:46min
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所尝试过的:

df['rh'] = df.time_delta.apply(lambda x: round(pd.Timedelta(x).total_seconds() \
                          % 86400.0 / 3600.0) )
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不太确定如何提取不包含在内的会议记录。小时

python pandas

4
推荐指数
1
解决办法
1447
查看次数

如何在 Python (timedelta) 中格式化持续时间?

我是python的新手。我试图显示持续时间。我所做的是:

startTime = datetime.datetime.now().replace(microsecond=0)
... <some more codes> ...
endTime = datetime.datetime.now().replace(microsecond=0)
durationTime = endTime - startTime
print("The duration is " + str(durationTime))
Run Code Online (Sandbox Code Playgroud)

输出是 => 持续时间是 0:01:28 我可以知道如何从结果中删除小时吗?我要显示 => 持续时间是 01:28

提前致谢!

python formatting datetime duration timedelta

1
推荐指数
1
解决办法
2万
查看次数