получить местное время с наддувом - PullRequest
14 голосов
/ 22 марта 2010

Я не нашел этого в документации: как получить местное время (лучше отформатированное) с boost?

Ответы [ 3 ]

20 голосов
/ 22 марта 2010

Используйте posix_time для создания объекта времени из системных часов.

Например, это вывело бы текущее системное время в виде строки в формате ISO:

namespace pt = boost::posix_time;
pt::to_iso_string(pt::second_clock::local_time());

Альтернативные варианты форматирования см. В разделе «Преобразование в строку» вышеуказанной ссылки и справке Дата / Время ввода / вывода .Кроме того, вы можете создать свою собственную строку вывода, используя функции доступа.Например, чтобы получить дату в американском стиле:

namespace pt = boost::posix_time;
pt::ptime now = pt::second_clock::local_time();
std::stringstream ss;
ss << static_cast<int>(now.date().month()) << "/" << now.date().day()
    << "/" << now.date().year();
std::cout << ss.str() << std::endl;

Обратите внимание, что месяц приведен к int, поэтому он будет отображаться в виде цифр.Выходной фасет по умолчанию будет отображать его как трехбуквенное сокращение месяца («Март» для марта).

0 голосов
/ 22 марта 2010

Не знаю, поможет ли это, но в документах Boost есть несколько примеров форматирования дат.

Плюс, я думаю, что эта статья описывает некоторые основы, на которые стоит обратить внимание.

0 голосов
/ 22 марта 2010

Используйте API ввода / вывода даты и времени:

http://www.boost.org/doc/libs/1_42_0/doc/html/date_time/date_time_io.html#date_time.io_objects

...