как сдвинуть объект datetime на 12 часов в python - PullRequest
4 голосов
/ 07 сентября 2010

Объекты Datetime по какой-то причине повредили мне голову. Я пишу, чтобы выяснить, как сдвинуть объект даты и времени на 12 часов. Мне также нужно знать, как определить, отличаются ли два объекта даты и времени, скажем, на 1 минуту или более.

Ответы [ 2 ]

16 голосов
/ 07 сентября 2010

Библиотека datetime имеет объект timedelta специально для такого рода вещей:

import datetime

mydatetime = datetime.now() # or whatever value you want
twelvelater = mydatetime + datetime.timedelta(hours=12)
twelveearlier = mydatetime - datetime.timedelta(hours=12)

difference = abs(some_datetime_A - some_datetime_B)
# difference is now a timedelta object

# there are a couple of ways to do this comparision:
if difference > timedelta(minutes=1):
    print "Timestamps were more than a minute apart"

# or: 
if difference.total_seconds() > 60:
    print "Timestamps were more than a minute apart"
3 голосов
/ 07 сентября 2010

Вы бы использовали datetime.timedelta для чего-то подобного.

from datetime import timedelta

datetime арифметика работает аналогично обычной арифметике: вы можете добавить timedelta объект к datetime объекту, чтобы сместить его время:

dt = # some datetime object
dt_plus_12 = dt + timedelta(hours=12)

Также вы можете вычесть два datetime объекта, чтобы получить timedelta, представляющий разницу между ними:

dt2 = # some other datetime object
ONE_MINUTE = timedelta(minutes=1)
if abs(dt2 - dt) > ONE_MINUTE:
    # do something
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...