mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Calendar: Implement different timezone support for ingame calendar
Closes #8390 Closes #29427
This commit is contained in:
@@ -58,9 +58,20 @@ std::vector<std::string_view> Trinity::Tokenize(std::string_view str, char sep,
|
||||
#if (defined(WIN32) || defined(_WIN32) || defined(__WIN32__))
|
||||
struct tm* localtime_r(time_t const* time, struct tm *result)
|
||||
{
|
||||
localtime_s(result, time);
|
||||
if (localtime_s(result, time) != 0)
|
||||
return nullptr;
|
||||
return result;
|
||||
}
|
||||
struct tm* gmtime_r(time_t const* time, struct tm* result)
|
||||
{
|
||||
if (gmtime_s(result, time) != 0)
|
||||
return nullptr;
|
||||
return result;
|
||||
}
|
||||
time_t timegm(struct tm* tm)
|
||||
{
|
||||
return _mkgmtime(tm);
|
||||
}
|
||||
#endif
|
||||
|
||||
tm TimeBreakdown(time_t time)
|
||||
@@ -70,17 +81,6 @@ tm TimeBreakdown(time_t time)
|
||||
return timeLocal;
|
||||
}
|
||||
|
||||
time_t LocalTimeToUTCTime(time_t time)
|
||||
{
|
||||
#if (defined(WIN32) || defined(_WIN32) || defined(__WIN32__))
|
||||
return time + _timezone;
|
||||
#elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
return timegm(gmtime(&time));
|
||||
#else
|
||||
return time + timezone;
|
||||
#endif
|
||||
}
|
||||
|
||||
time_t GetLocalHourTimestamp(time_t time, uint8 hour, bool onlyAfterTime)
|
||||
{
|
||||
tm timeLocal = TimeBreakdown(time);
|
||||
|
||||
Reference in New Issue
Block a user