Согласно заголовочному файлу Poco :: Timestamp, временные метки указаны в UT C, см. Документация по временным меткам . Если мои локальные часы установлены на часовой пояс UT C + 1 и я выполняю следующий код:
Poco::Timestamp timestampFromUTCTime = Poco::DateTime( 1970, 1, 1 ).timestamp();
Poco::Timestamp timestampFromLocalTime = Poco::LocalDateTime( 1970, 1, 1 ).timestamp();
Какое ожидаемое значение timestampFromLocalTime
?
Я ожидаю получить -3600
секунд, но получаю 0
, то же значение, что и timestampFromUTCTime
.
Следующий код подтверждает
Poco::LocalDateTime originalLocalDateTime( 2020, 1, 30 );
Poco::Timestamp timestamp = originalLocalDateTime.timestamp();
Poco::LocalDateTime newLocalDateTime = timestamp;
assert( originalLocalDateTime == newLocalDateTime );
Если a Timestamp
можно создать из LocalDateTime
, а LocalDateTime
можно создать из Timestamp
, по моему мнению, библиотека должна обрабатывать необходимые преобразования.