Сравнения даты Python

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
62
задан Eric Leschinski 22 October 2014 в 19:44
поделиться

5 ответов

Используйте datetime.timedelta класс:

>>> from datetime import datetime, timedelta
>>> then = datetime.now() - timedelta(hours = 2)
>>> now = datetime.now()
>>> (now - then) > timedelta(days = 1)
False
>>> (now - then) > timedelta(hours = 1)
True

Ваш пример мог быть записан как:

if (datetime.now() - self.timestamp) > timedelta(seconds = 100)

или

if (datetime.now() - self.timestamp) > timedelta(minutes = 100)
110
ответ дан robbyt 24 November 2019 в 16:45
поделиться

Сравните различие с timedelta, который Вы создаете:

if datetime.datetime.now() - timestamp > datetime.timedelta(seconds = 5):
    print 'older'
5
ответ дан William 24 November 2019 в 16:45
поделиться

Можно использовать комбинацию 'дней' и атрибуты 'секунд' возвращенного объекта для выяснения ответа, как это:

def seconds_difference(stamp1, stamp2):
    delta = stamp1 - stamp2
    return 24*60*60*delta.days + delta.seconds + delta.microseconds/1000000.

брюшной пресс Использования () в ответе, если Вы всегда хотите положительное число секунд.

Для обнаружения, сколько секунды в прошлое метка времени можно использовать его как это:

if seconds_difference(datetime.datetime.now(), timestamp) < 100:
     pass
1
ответ дан Jerub 24 November 2019 в 16:45
поделиться

Можно вычесть два дата и время объекты найти различие между ними.
можно использовать datetime.fromtimestamp для парсинга метки времени POSIX.

0
ответ дан William Keller 24 November 2019 в 16:45
поделиться

Как так:

# self.timestamp should be a datetime object
if (datetime.now() - self.timestamp).seconds > 100:
    print "object is over 100 seconds old"
0
ответ дан Jeremy Cantrell 24 November 2019 в 16:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: