如何在datetime中增加时间?

时间:2018-08-02 06:53:15

标签: python python-3.7

我正在尝试编写一个桌面应用程序,该程序花费当前时间,并增加90分钟的增量,以告诉用户现在他们上床睡觉的时间(大多数人可靠地在90分钟的睡眠周期内发生睡眠周期) )。

为此,我需要程序采用当前日期时间并添加90分钟的6次重复。到目前为止,我已经尝试了几种方法,这是我觉得最接近的方法(使用Python 3.7):

import datetime

now = datetime.datetime.now()

for i (0,7):

    gotosleep = now + datetime.datetime(0, 0, 0[, 0[, (90*i)[, 0[, 0]]]])
    print(gotosleep)

我还尝试将datetime.datetime(0, 0, 0[, 0[, (90*i)[, 0[, 0]]]])格式化为datetime.datetime(0, 0, 0[ 0[ (90*i)[ 0[ 0]]]]),因为我一直收到语法错误,但无济于事。

2 个答案:

答案 0 :(得分:1)

您可以使用timedelta:

import datetime

now = datetime.datetime.now()

for i in range(7):

    gotosleep = now + datetime.timedelta(0,i*60*90)
    print(gotosleep)

输出:

2018-08-02 09:26:11.631513
2018-08-02 10:56:11.631513
2018-08-02 12:26:11.631513
2018-08-02 13:56:11.631513
2018-08-02 15:26:11.631513
2018-08-02 16:56:11.631513
2018-08-02 18:26:11.631513

答案 1 :(得分:0)

使用datetime.timedelta,我们可以将所需时间间隔与当前时间相加。

from datetime import timedelta, datetime

sleep_cycles = 7    
result = datetime.now() + timedelta(minutes=90 * sleep_cycles)

更多笔记

我看到您在问题中写了datetime.datetime(0, 0, 0[, 0[, (90*i)[, 0[, 0]]]])。这表明阅读文档很困难:当文档中出现[, argument]之类的语法时,这意味着给定的参数是可选的, not 则该参数必须用方括号括起来

出于相同的原因,您不需要添加所有这些参数。例如,当您想使用第二个可选参数时,将按以下步骤操作:

datetime.datetime(
    required_1,
    required_2,
    required_3,
    optional_1,
    optional_2
)

我希望您现在可以更清楚地阅读文档。