Чтобы ответить на ваш вопрос, ожидается поведение Pandas Timestamp. Однако использование маленького регистра %s
может дать очень неожиданные результаты и поэтому не может быть рекомендовано. Ниже я приведу некоторые сведения.
Предпосылки для решения
При использовании datetime
, Python фактически вызывает функцию strftime()
библиотеки C библиотеки. Таким образом, коды формата могут различаться на разных платформах. Важно отметить, что маленький корпус %s
не поддерживается Python strftime()
, как указано в документации . Это работает только потому, что может поддерживаться функцией вашей платформы. На некоторых платформах %s
возвращает количество секунд с начала 1970-01-01 00:00:00 +0000 (UT C), но использует ваш local часовой пояс, а не пояс, который был указан в Timestamp
. Использование %s
приведет к совершенно другим значениям в моем часовом поясе. Подводя итог, не используйте .strftime("%s)
, так как это может привести к очень неожиданным результатам.
>>> import pandas as pd
>>> ts = pd.Timestamp("2020-06-16 07:00:00-0400")
>>> ts.strftime("%s %z")
Out: '1592290800 -0400'
>>> ts = pd.Timestamp("2020-06-16 07:00:00")
>>> ts.strftime("%s %z")
Out: '1592290800 '
Решение
Если вы хотите, чтобы Timestamp
как строка, вы можете использовать
>>> "%d" % ts.timestamp()
Out: '1592305200'
Learning by stackoverflowing,