#cpp #время #cpp17
У меня стоит задача написать функцию, которая получает от GPS и возвращает текущее время. В какой структуре или объекте, какого класса из стандартной библиотеки мне хранить это время? Мне нужно, что бы была возможность легко задавать и получать значения секунд, минут, часов и т.п. Т.е. что то типа time_point time_now = now(); int hour = time_now.hour(); int second = time_now.second(); time_now.second = 0; Сейчас у меня много где в коде используется std::chrono::time_point, но как, имея конкретный объект получить, например количество часов прошедших от начала суток я не знаю.
Ответы
Ответ 1
Можете воспользоваться стандартной библиотекой C для работы с датой и временем: std::time_t t = time(nullptr); std::cout << localtime(&t)->tm_hour; В C++20 в библиотеку chrono добавляются функции для работы с датой, временем, временными зонами, новые классы часов и т.д. подробнее на cppreference Сейчас Вы можете, например, сконвертировать time_point в std::time_t и также использовать функции из стандартной библиотеки C: using sc = std::chrono::system_clock; std::time_t t = sc::to_time_t(sc::now()); std::cout << localtime(&t)->tm_hour; В Boost имеется библиотека Date_Time В Qt также имеется класс для работы со временем - QDateTime.Ответ 2
Вам принципиальны "++"? Если нет, то gettimeofday(), localtime(), mktime() и работы со struct timeval может быть достаточно.
Комментариев нет:
Отправить комментарий