在Python中处理时间

1 投票
4 回答
4771 浏览
提问于 2025-04-15 14:05

在下面的代码中,我需要在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 应该是当前的日期和时间加上延迟。

说“更新自己”这个说法不太准确。

可以试试下面的方法:

  1. 先用最简单的方法计算“当前日期和时间加上延迟”。

  2. 把结果打印出来。

  3. 试着在这个结果上使用 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

撰写回答