/
Shymer123
/
LumenServer
Обзор
Документация
Войти
/
Shymer123
/
LumenServer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Server/SourceFiles/Core/Utils/TimeFormat.cpp
47 строк
1 KB
Shymer123
Initial commit: LumenServer
20 июн 2026, 12:43
20 июн 2026, 12:43
173f14c
Код
Авторство
О чём код?
#include "TimeFormat.h" #include <sstream> #include <iomanip> #include <ctime> namespace Core::Utils { std::string to_qt_timestamp(std::chrono::system_clock::time_point tp) { std::time_t t = std::chrono::system_clock::to_time_t(tp); std::tm tm = *std::gmtime(&t); std::ostringstream oss; oss << std::put_time(&tm, "%Y-%m-%d %H:%M:%S"); return oss.str(); } std::chrono::system_clock::time_point from_qt_timestamp(const std::string& time) { std::tm tm = {}; #ifdef _WIN32 std::istringstream iss(time); iss >> std::get_time(&tm, "%Y-%m-%d %H:%M:%S"); if (iss.fail()) { throw std::runtime_error("Failed to parse timestamp: " + time); } std::time_t t = _mkgmtime(&tm); #else if (strptime(time.c_str(), "%Y-%m-%d %H:%M:%S", &tm) == nullptr) { throw std::runtime_error("Failed to parse timestamp: " + time); } tm.tm_isdst = 0; std::time_t t = timegm(&tm); if(t == -1) { t = std::mktime(&tm); std::tm gm_tm = *std::gmtime(&t); std::time_t gm_t = std::mktime(&gm_tm); t += t - gm_t; } #endif return std::chrono::system_clock::from_time_t(t); } } // namespace Core::Utils