PQt4 QDatetime: почему я получаю один и тот же ответ при использовании addSecs() с двумя разными значениями секунд?

Я использую Python 2.6.6 и PyQt4. У меня есть начальный объект QDateTime, и я итеративно добавляю 60 секунд, чтобы создать список каждой минуты в течение определенного промежутка времени. Я обнаружил, что есть несколько случаев, когда добавление двух разных значений секунд к объекту QDateTime приводит к одному и тому же времени.

Вот пример проблемы:

from PyQt4 import QtCore

start = QtCore.QDateTime.fromString("2010-11-01 00:00", "yyyy-MM-dd hh:mm")

print start.addSecs(522540).toString("yyyy-MM-dd hh:mm")
print start.addSecs(526140).toString("yyyy-MM-dd hh:mm")

И полученный результат:

2010-11-07 01:09
2010-11-07 01:09

Я стучал головой по клавиатуре, пытаясь понять это. Что я делаю неправильно?

1 ответ

Решение

Это, вероятно, зависит от ваших настроек локали:

кажется DST в США и других странах закончилась 2010-11-07...

так что держу пари, что это результат этого.

если вы получаете какие-то странные значения при выполнении вычислений с датами, всегда проверяйте, не было ли изменения летнего времени или високосного года, и рассматривайте различные локали. к сожалению, время не всегда так линейно, как кажется.

Другие вопросы по тегам