mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-10-23 04:58:16 +08:00
proper helper function to get utc time
This commit is contained in:
parent
122921bb48
commit
35f4b9c6d7
@ -52,11 +52,7 @@ static void exception_handler(int signal, siginfo_t *info, void *context, struct
|
|||||||
|
|
||||||
std::ofstream file(logs_filepath, std::ios::app);
|
std::ofstream file(logs_filepath, std::ios::app);
|
||||||
|
|
||||||
auto now = std::chrono::system_clock::now();
|
std::string time(common_helpers::get_utc_time());
|
||||||
auto t_now = std::chrono::system_clock::to_time_t(now);
|
|
||||||
auto gm_time = std::gmtime(&t_now);
|
|
||||||
auto time = std::string(std::asctime(gm_time));
|
|
||||||
time.pop_back(); // remove the trailing '\n' added by asctime
|
|
||||||
common_helpers::write(file, "[" + time + "]");
|
common_helpers::write(file, "[" + time + "]");
|
||||||
{
|
{
|
||||||
std::stringstream ss{};
|
std::stringstream ss{};
|
||||||
|
@ -106,12 +106,7 @@ static void log_exception(LPEXCEPTION_POINTERS ex_pointers)
|
|||||||
|
|
||||||
std::ofstream file(std::filesystem::path(logs_filepath), std::ios::app);
|
std::ofstream file(std::filesystem::path(logs_filepath), std::ios::app);
|
||||||
|
|
||||||
auto now = std::chrono::system_clock::now();
|
std::string time(common_helpers::get_utc_time());
|
||||||
auto t_now = std::chrono::system_clock::to_time_t(now);
|
|
||||||
auto gm_time = std::gmtime(&t_now);
|
|
||||||
auto asc_time = std::asctime(gm_time);
|
|
||||||
auto time = std::string(asc_time ? asc_time : "");
|
|
||||||
time.pop_back(); // remove the trailing '\n' added by asctime
|
|
||||||
common_helpers::write(file, "[" + time + "]");
|
common_helpers::write(file, "[" + time + "]");
|
||||||
{
|
{
|
||||||
std::stringstream ss{};
|
std::stringstream ss{};
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
#include <cctype>
|
#include <cctype>
|
||||||
#include <random>
|
#include <random>
|
||||||
|
|
||||||
|
// for gmtime_s()
|
||||||
|
#define __STDC_WANT_LIB_EXT1__ 1
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
|
||||||
namespace common_helpers {
|
namespace common_helpers {
|
||||||
|
|
||||||
KillableWorker::KillableWorker(
|
KillableWorker::KillableWorker(
|
||||||
@ -407,3 +412,24 @@ size_t common_helpers::rand_number(size_t max)
|
|||||||
|
|
||||||
return distrib(gen);
|
return distrib(gen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string common_helpers::get_utc_time()
|
||||||
|
{
|
||||||
|
// https://en.cppreference.com/w/cpp/chrono/c/strftime
|
||||||
|
std::time_t time = std::time({});
|
||||||
|
std::tm utc_time{};
|
||||||
|
|
||||||
|
bool is_ok{};
|
||||||
|
#if defined(__GNUC__) || defined(POSIX)
|
||||||
|
is_ok = !!gmtime_s(&time, &utc_time);
|
||||||
|
#else
|
||||||
|
is_ok = !gmtime_s(&utc_time, &time);
|
||||||
|
#endif
|
||||||
|
std::string time_str(4 +1 +2 +1 +2 +3 +2 +1 +2 +1 +2 +1, '\0');
|
||||||
|
if (is_ok) {
|
||||||
|
constexpr const static char fmt[] = "%Y/%m/%d - %H:%M:%S";
|
||||||
|
size_t chars = std::strftime(&time_str[0], time_str.size(), fmt, &utc_time);
|
||||||
|
time_str.resize(chars);
|
||||||
|
}
|
||||||
|
return time_str;
|
||||||
|
}
|
||||||
|
@ -101,4 +101,6 @@ bool dir_exist(const std::wstring &dirpath);
|
|||||||
// between 0 and max, 0 and max are included
|
// between 0 and max, 0 and max are included
|
||||||
size_t rand_number(size_t max);
|
size_t rand_number(size_t max);
|
||||||
|
|
||||||
|
std::string get_utc_time();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user