From c6bd508ec7fd534f17f95a2f7a16f107b5e69092 Mon Sep 17 00:00:00 2001 From: Minho Kang Date: Sat, 19 Aug 2017 11:26:16 +0900 Subject: [PATCH] Fix getTimeMs not returning correct unix epoch Turned out high_resolution_clock did not return current UTC time. Use system_clock to fix it. --- src/servers/Server_Common/Util/Util.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/servers/Server_Common/Util/Util.cpp b/src/servers/Server_Common/Util/Util.cpp index 2d7a6a41..60903c30 100644 --- a/src/servers/Server_Common/Util/Util.cpp +++ b/src/servers/Server_Common/Util/Util.cpp @@ -17,17 +17,14 @@ std::string Core::Util::binaryToHexString( uint8_t* pBinData, uint16_t size ) uint64_t Core::Util::getTimeMs() { - std::chrono::high_resolution_clock::time_point t1 = std::chrono::high_resolution_clock::now(); - auto now_ms = std::chrono::time_point_cast< std::chrono::milliseconds >( t1 ).time_since_epoch().count(); - - return now_ms; + std::chrono::milliseconds epoch = std::chrono::duration_cast< std::chrono::milliseconds >(std::chrono::system_clock::now().time_since_epoch()); + return epoch.count(); } uint64_t Core::Util::getTimeSeconds() { - std::chrono::high_resolution_clock::time_point t1 = std::chrono::high_resolution_clock::now(); - auto now = std::chrono::time_point_cast< std::chrono::seconds >( t1 ).time_since_epoch().count(); - return now; + std::chrono::seconds epoch = std::chrono::duration_cast< std::chrono::seconds >(std::chrono::system_clock::now().time_since_epoch()); + return epoch.count(); } uint64_t Core::Util::getEorzeanTimeStamp()