我java.util.Date
在Scala中使用Java的类,想要比较一个Date
对象和当前时间.我知道我可以使用getTime()来计算delta:
(new java.util.Date()).getTime() - oldDate.getTime()
Run Code Online (Sandbox Code Playgroud)
但是,这只留下了一个long
代表毫秒.是否有更简单,更好的方式来获得时间增量?
我是一个Python新手(2周),我在格式化datetime.timedelta
对象时遇到了麻烦.
这是我正在尝试做的事情:我有一个对象列表,该对象类的一个成员是一个timedelta对象,显示事件的持续时间.我希望以小时:分钟的格式显示该持续时间.
我已经尝试了各种方法来做到这一点,我遇到了困难.我目前的方法是为我的对象添加方法,返回小时和分钟.我可以通过将timedelta.seconds除以3600并将其四舍五入来获得小时数.我无法获得余数秒并将其转换为分钟.
顺便说一句,我正在使用Google AppEngine
它Django Templates
进行演示.
如果有人可以帮助或知道更好的解决方法,我会非常高兴.
谢谢,
我有时间了.我想要那些日子,小时和分钟 - 无论是作为元组还是字典......我都不会被激怒.
多年来我必须用十几种语言做了十几次这样的事情,但Python通常对一切都有一个简单的答案,所以我想在破坏一些令人作呕的简单(但冗长)数学之前我会问这里.
Fooz先生提出了一个很好的观点.
我正在处理"列表"(有点像ebay列表),其中每个都有一个持续时间.我正试图找到剩下的时间when_added + duration - now
我是否正确地说这不会导致夏令时?如果没有,添加/减去一小时的最简单方法是什么?
我需要检查自某个日期以来是否有多少年.目前我timedelta
已从datetime
模块中获取,我不知道如何将其转换为多年.
鉴于下面的python代码,请帮助我了解那里发生的事情.
start_time = time.time()
time.sleep(42)
end_time = time.time()
uptime = end_time - start_time
human_uptime = str(datetime.timedelta(seconds=int(uptime)))
Run Code Online (Sandbox Code Playgroud)
所以我得到的区别start time
和end time
,第5行我铸造围捕的持续时间和现在是什么,有什么进一步的解释?
我知道delta意味着什么(平均值或差值),但为什么我必须传递seconds = uptime
给我timedelta
,为什么字符串转换工作得很好,我得到了HH:MM:SS
?
我想在pandas数据框中创建一个列,它是timedelta列中天数的整数表示.是否可以使用'datetime.days'或者我需要做更多手动的事情吗?
timedelta专栏
7天,23:29:00
日整数列
7
我正在编写一个需要timedelta输入的函数作为字符串传入.用户必须输入类似"32m"或"2h32m",甚至"4:13"或"5hr34m56s"的内容......是否有图书馆或其他已经实施此类内容的内容?
datetime.timedelta
(来自Python的标准库)和dateutil.relativedelta.relativedelta
仅使用几天时有什么区别?
据我了解,timedelta
只支持天(和周),同时relativedelta
增加了对按年,月,周或日定义的时段的支持,以及定义年,月或日的绝对值.(记住,出于这个问题的目的,我不必担心小时,分钟或秒)
考虑到我只能用工作datetime.date
对象,只有在按天数来定义时间段感兴趣,有什么之间的区别timedelta
和relativedelta
?有什么区别吗?
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta
i = -1 # This could have been any integer, positive or negative
someday = date.today()
# Is there any difference between these two lines?
otherday = someday + timedelta(days=i)
otherday = someday + relativedelta(days=i)
Run Code Online (Sandbox Code Playgroud) 我有一个变量,<type 'datetime.timedelta'>
我想将它与某些值进行比较.
让我们说d产生这个datetime.timedelta
值0:00:01.782000
我想比较一下:
#if d is greater than 1 minute
if d>1:00:
print "elapsed time is greater than 1 minute"
Run Code Online (Sandbox Code Playgroud)
我尝试过转换,datetime.timedelta.strptime()
但似乎确实有效.是否有更简单的方法来比较这个值?
在Python中,如何获取"3年前的今天"的datetime对象?
更新:FWIW,我不太关心准确性......也就是今天2月29日,我不在乎我是在2月28日还是3月1日给我答案.在这种情况下,简洁比可配置性更重要.