Как мне распечатать Poco::Timestamp
с Poco::DateTimeFormatter
в отформатированную дату-время на основе текущего часового пояса?
У меня есть print_pretty_datetime(const Poco::Timestamp &now)
, где я получу Poco::Timestamp
, поэтому я не могу использовать Poco::LocalDateTime
, к сожалению.
MCVE:
#include "Poco/Timestamp.h"
#include "Poco/Timezone.h"
#include "Poco/DateTimeFormatter.h"
#include "Poco/DateTimeFormat.h"
#include <iostream>
#include <string>
// Cannot change the method signature. I will receive a Poco::Timestamp object
std::string print_pretty_datetime(const Poco::Timestamp &now)
{
return Poco::DateTimeFormatter::format(
now,
Poco::DateTimeFormat::SORTABLE_FORMAT,
Poco::Timezone::tzd()
);
}
int main()
{
Poco::Timestamp now;
std::string dt_now = print_pretty_datetime(now);
std::cout << dt_now << '\n';
return 0;
}
Eg: возвращенная строка 2019-01-07 11:10:12
(таким образом UTC+0
), в то время как мое устройство находится в UTC+1
.
Фактически, команда date
возвращает Mon Jan 7 12.10.12 CET 2019
.
Какой правильный параметр для tzd
в Poco::DateTimeFormatter::format
для печати даты и времени на основе текущей локали?
Системная информация:
SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
g++ (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
Poco 1.9.0