在python中操纵时间

时间:2009-09-04 20:09:42

标签: python datetime

在下面显示的代码中,我需要操作python中的time var来在python中显示日期/时间戳来表示延迟。

例如,当用户以小时为单位输入延迟时间时,我需要设置jcarddeliver var以使用当前日期/时间+延迟的值更新自身。

它也应该更新日期变量。例如,如果日期是2月24日,时间是15:00,延迟时间是10小时,则jcarddeliver日期应更改为2月25日。

jcarddate = time.strftime("%a %m/%d/%y", time.localtime())
jcardtime = time.strftime("%H:%M:%S", time.localtime())
delay = raw_input("enter the delay: ")
jcarddeliver = ??

我只是希望我有意义。

4 个答案:

答案 0 :(得分:3)

您可以尝试日期时间模块,例如

import datetime
now = datetime.datetime.now()
delay = float (raw_input ("enter delay (s): "))
dt = datetime.timedelta (seconds=delay)
then = now + dt
print now
print then

答案 1 :(得分:1)

time.time()的结果是自Epoch以来秒数的浮点值。您可以为此值添加秒数,并使用time.localtime()time.ctime()和其他函数以各种形式获取结果:

>>> now = time.time()
>>> time.ctime(now)
'Fri Sep 04 16:19:59 2009' # <-- this is local time
>>> then = now + (10.0 * 60.0 * 60.0) # <-- 10 hours in seconds
>>> time.ctime(then)
'Sat Sep 05 02:19:59 2009'

答案 2 :(得分:0)

“我需要设置jcarddeliver var以使用当前日期/时间+延迟的值更新自己”

如何重新制定

jcarddeliver应该是当前的日期时间加上延迟。

“更新本身”并不是完全明智的。

尝试以下方法:

  1. 尝试以最明显的方式计算“当前日期时间加上延迟”

  2. 打印结果。

  3. 尝试在此结果上使用localtime()。你得到了什么?

答案 3 :(得分:0)

试试这个:

now = time.time()
then = now + 365*24*3600
print time.strftime('%Y-%m-%d', time.localtime(then))