在Python中处理时间
在下面的代码中,我需要在Python中处理时间变量,以显示一个日期/时间戳,来表示延迟的时间。
举个例子,当用户输入延迟的小时数时,我需要让jcarddeliver变量自动更新,变成当前的日期/时间加上这个延迟。
同时,日期变量也要更新。比如,如果今天是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
我需要让 jcarddeliver
这个变量更新为当前的日期和时间加上一个延迟。
可以这样重新表述:
jcarddeliver
应该是当前的日期和时间加上延迟。
说“更新自己”这个说法不太准确。
可以试试下面的方法:
先用最简单的方法计算“当前日期和时间加上延迟”。
把结果打印出来。
试着在这个结果上使用
localtime()
。你得到了什么?
1
time.time()
的结果是一个浮点数,表示自“纪元”以来经过的秒数。“纪元”通常指的是1970年1月1日。这意味着你可以在这个值上加上秒数,然后使用 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'
3
你可以试试使用datetime模块,比如:
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