Библиотека дат C ++ не работает с часовым поясом - PullRequest
0 голосов
/ 23 сентября 2018

Раньше играли один раз.Я пытаюсь получить некоторые данные из библиотеки C ++ date , но возникла исключительная ситуация.Я компилирую с

-DUSE_AUTOLOAD = 0 -DHAS_REMOTE_API = 0 -DUSE_OS_TZDB = 1

что не так с кодом?

#include <iostream>
#include "date/tz.h"
#include <exception>

using namespace date;
using namespace std::chrono;

int main(int argc, char** argv) {


    try {

    auto current_time_zone = make_zoned("Europe/Athens", std::chrono::system_clock::now());

    auto current_day = date::format("%A", current_time_zone);
    auto current_time = date::format("%H:%M", current_time_zone);

    std::cout << "day: " << current_day << ", time: " << current_time << " in timezone: " << current_time_zone << std::endl;
    //std::cout << " in timezone: " << current_time_zone << std::endl;

    } catch ( std::exception& e) {
        std::cout << e.what() << std::endl;

    }

}

1 Ответ

0 голосов
/ 26 сентября 2018

Я не уверен, в чем проблема, но я могу вам сказать, что эта библиотека не выдает исключение, которое содержит сообщение "Неизвестная ошибка".

Попробуйте добавить -DONLY_C_LOCALE=1 на ваши флаги сборки.Это позволит избежать вашего * std: lib's time_put фасета, но ограничит вас только локалью "C".Если это решит проблему, то ваш фасет std :: lib std::time_put вызвал исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...