Разница в дате и времени Pandas в Ubuntu и Windows

#python #pandas #windows #datetime #windows-subsystem-for-linux

Вопрос:

У меня есть программа, которая делит дату и время на минуты — часы. Это хорошо работает в Windows, но попытка использовать его на сервере или WSL не сработала

     filter_by = pd.Timestamp("today").floor("H") - pd.offsets.Minute(
        int(time)
    )
 

Тот же код, который выполняется в WSL,
Я получаю

 2021-11-17T17:45:00.000000000 
 

Во время работы в Windows я получаю правильное время

 2021-11-17T23:30:00.000000000
 

Я также изменил настройки времени Ubuntu на Asia / Kolkata, Windows находится на Asia / Kolkata, но это все равно не сработало.

Есть предложения?

Комментарии:

1. Я подозреваю, что в Windows и WSL разные настройки часового пояса (не уверен, что измененные вами настройки действительно влияют на то, что использует Python / pandas). Попробуйте pd.Timestamp('today', tz='UTC') , и вы должны получить согласующиеся результаты.

2. Эй, @MrFuppes, спасибо, но даже это не сработало

Ответ №1:

Попробовав все решения, которые я смог найти,

изменение временного смещения на python — это то, что сработало для меня

     tz_IN = pytz.timezone("Asia/Kolkata")
    datetime_IN = datetime.datetime.now(tz_IN) - datetime.timedelta(
        minutes=int(time)
    )
 

Комментарии:

1. Что такое переменная time ?

2. @MrFuppes это ввод числа, заданный пользователем, вы можете попробовать его в прямом эфире здесь. ссылка На бифуркацию времени 15-30-45 является переменной времени

3. если это просто смещение, я не думаю, что это имеет отношение к вопросу, нет? Кроме того, pd.Timestamp("today").floor("H") и datetime.datetime.now(tz_IN) отличаются тем, что первый установлен на час, а второй — нет.

4. @MrFuppes спасибо за предложение, я переключился на python и работал, так как не хотел тратить больше времени, и если кто-то застрял в подобной проблеме, может переключиться, если потребуется быстрое решение, но все же мне интересно, почему это pd.Timestamp("today").floor("H") работало в ОС Windows, но не в Ubuntu, однако, 1 за ответ 🙂