标签: timedelta

如何在Python中获得timedelta的总和?

Python:如何获得timedelta的总和?

例如.我刚收到很多timedelta对象,现在我想要总和.而已!

python datetime timedelta

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

Python - 使用时间戳,timedelta的日期和时间比较

过去一小时我一直在挖掘Python文档和许多SO问题; 请原谅我是另一个被Python中时差之谜困住的Python新手.

我的目标是确定当前时间与特定日期/时间之间的差异,无论是在过去还是将来,并返回一个可行的格式,如秒.

例如,如果输入是下午2:00和下午4:00(现在),我希望它说"-7200",表示事件发生两个小时AGO.如果输入是下午4:00(现在)和太阳下午5:00,则输出应为"176400"秒,表示从现在开始的两天和一小时.

这是我试过的东西......

  • 我的第一个版本是一个函数,它接受一个字符串时间戳并将其拼凑为多个变量,然后进行比较.它很笨拙有许多错误,我想如果我在这里发布它,我将负责程序员呕吐.

  • 我偶然发现了这个神奇的timedelta函数,并探讨了文档和SO,但我不认为它符合我的要求.

  • 我有想法将时间戳转换为自纪元以来的秒数然后减去,但如果减法的顺序错误(如果事件是将来的不同情况),这会成为一个问题,我想添加if语句来检查秒的标志是笨重的,有些东西可以避免.

这是我当前的代码(仍然需要修复"双向"比较),来自之前解决的SO问题:

now = time.strftime("%a %b %d %H:%M:%S %Y")
then = time.ctime(os.path.getmtime("x.cache"))
tdelta = datetime.strptime(now, '%a %b %d %H:%M:%S %Y') - datetime.strptime(then, '%a %b %d %H:%M:%S %Y')
Run Code Online (Sandbox Code Playgroud)

而且我觉得我应该以某种方式从这里拉出几秒钟,就像在这个问题中: Python的timedelta:我不能只是在任何时间进入单位我想要整个差异的价值?

但我对如何连接这些点感到迷茫.

我怎么能做到这一点?

python timedelta

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

如何将timedelta对象转换为datetime对象

将timedelta对象转换为datetime对象的正确方法是什么?

我立刻想到了类似的东西datetime(0)+deltaObj,但那不是很好......是不是有某种toDateTime()功能或类似的东西?

python datetime timedelta

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

将字符串'yyyy-mm-dd'转换为datetime python

我有来自用户的原始输入,例如"2015-01-30"...对于我正在使用的查询,日期必须输入为字符串,如"yyyy-mm-dd".

我希望在我的循环结束时将日期增加1个月"2015-01-30"变为"2015-02-27"(理想情况下是下个月的最后一个工作日).我希望有人可以帮助我; 我正在使用PYTHON,我想转换为datetime的原因是我找到了一个添加1个月的功能.

理想情况下,我要回答的两个问题是(在Python中):

1)如何将字符串"yyyy-mm-dd"转换为python日期时间并在应用timedelta函数后转换回字符串

2)和/或如何将1个月添加到字符串"yyyy-mm-dd"

python datetime timedelta

18
推荐指数
3
解决办法
5万
查看次数

Python:如何将日期时间/时间戳从一个时区转换为另一个时区?

具体来说,考虑到我的服务器的时区(系统时间透视图)和时区输入,如何计算系统时间,就像它在新时区(无论夏令时等)一样?

import datetime
current_time = datetime.datetime.now() #system time

server_timezone = "US/Eastern"
new_timezone = "US/Pacific"

current_time_in_new_timezone = ???
Run Code Online (Sandbox Code Playgroud)

python timezone datetime pytz timedelta

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

有没有简单的方法将ISO 8601持续时间转换为timedelta?

给定ISO 8601持续时间字符串,如何将其转换为datetime.timedelta

这不起作用:

timedelta("PT1H5M26S", "T%H%M%S")
Run Code Online (Sandbox Code Playgroud)

python datetime timedelta python-datetime

18
推荐指数
2
解决办法
5407
查看次数

Python 2.6.5:将timedelta与timedelta分开

我正在尝试将一个timedelta对象与另一个对象分开以计算服务器正常运行时间:

>>> import datetime
>>> installation_date=datetime.datetime(2010,8,01)
>>> down_time=datetime.timedelta(seconds=1400)
>>> server_life_period=datetime.datetime.now()-installation_date
>>> down_time_percentage=down_time/server_life_period
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'datetime.timedelta' 
           and 'datetime.timedelta'
Run Code Online (Sandbox Code Playgroud)

我知道这已经在Python 3.2中得到了解决,但除了计算微秒,秒和天数以及除以?之外,还有一种方便的方法可以在Python的早期版本中处理它吗?

谢谢,

亚当

python division timedelta

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

在django模板中显示timedelta对象

我无法让我的django模板始终显示timedelta对象.我尝试在模板中使用时间过滤器,但是当我这样做时没有显示任何内容.如果我使用Assert False,timedelta对象在错误页面上显示如下:

time    datetime.timedelta(0, 38, 132827)
Run Code Online (Sandbox Code Playgroud)

这会将时差显示为:

0:00:38.132827

我想只显示每个timedelta对象的小时,分​​钟和秒.有没有人对我如何做到这一点有任何建议?

python django django-templates timedelta

16
推荐指数
2
解决办法
8017
查看次数

如何使用熊猫分组计算时差?

问题

我想diff按小组计算.我不知道如何对time列进行排序,以便每个组的结果都是排序的和正面的.

原始数据:

In [37]: df 
Out[37]:
  id                time
0  A 2016-11-25 16:32:17
1  A 2016-11-25 16:36:04
2  A 2016-11-25 16:35:29
3  B 2016-11-25 16:35:24
4  B 2016-11-25 16:35:46
Run Code Online (Sandbox Code Playgroud)

我想要的结果

Out[40]:
   id   time
0  A   00:35
1  A   03:12
2  B   00:22
Run Code Online (Sandbox Code Playgroud)

注意:时间col的类型是timedelta64 [ns]

In [38]: df['time'].diff(1)
Out[38]:
0                 NaT
1            00:03:47
2   -1 days +23:59:25
3   -1 days +23:59:55
4            00:00:22
Name: time, dtype: timedelta64[ns]
Run Code Online (Sandbox Code Playgroud)

没有得到理想的结果.

希望

不仅解决问题,而且代码可以快速运行,因为有5000万行.

python sorting timedelta pandas difference

16
推荐指数
1
解决办法
7571
查看次数

熊猫测量自条件以来经过的时间

我有以下数据帧:

               Time   Work
2018-12-01 10:00:00     Off
2018-12-01 10:00:02     On
2018-12-01 10:00:05     On
2018-12-01 10:00:06     On
2018-12-01 10:00:07     On
2018-12-01 10:00:09    Off
2018-12-01 10:00:11    Off
2018-12-01 10:00:14     On
2018-12-01 10:00:16     On
2018-12-01 10:00:18     On
2018-12-01 10:00:20    Off
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列,其中包含自设备开始工作以来经过的时间.

               Time   Work    Elapsed Time
2018-12-01 10:00:00    Off               0
2018-12-01 10:00:02     On               2
2018-12-01 10:00:05     On               5
2018-12-01 10:00:06     On               6
2018-12-01 10:00:07     On               7
2018-12-01 10:00:09    Off               0
2018-12-01 10:00:11    Off               0
2018-12-01 10:00:14     On               3
2018-12-01 10:00:16     On               5
2018-12-01 10:00:18     On …
Run Code Online (Sandbox Code Playgroud)

python time timedelta pandas

16
推荐指数
3
解决办法
639
查看次数