diff options
| author | 2023-10-29 13:50:55 +0000 | |
|---|---|---|
| committer | 2024-01-24 04:26:55 +0000 | |
| commit | e4915fb7d2077584a11a15141bc81d28ed2b0125 (patch) | |
| tree | 1783055dc2e98eaf9099e8e7b194b55f8f607747 /src/common/time_zone.cpp | |
| parent | Merge pull request #12678 from german77/settings_impl (diff) | |
| download | yuzu-e4915fb7d2077584a11a15141bc81d28ed2b0125.tar.gz yuzu-e4915fb7d2077584a11a15141bc81d28ed2b0125.tar.xz yuzu-e4915fb7d2077584a11a15141bc81d28ed2b0125.zip | |
Rework time service to fix time passing offline.
Diffstat (limited to 'src/common/time_zone.cpp')
| -rw-r--r-- | src/common/time_zone.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/common/time_zone.cpp b/src/common/time_zone.cpp index 69e728a9d..f77df604f 100644 --- a/src/common/time_zone.cpp +++ b/src/common/time_zone.cpp | |||
| @@ -88,7 +88,17 @@ std::string FindSystemTimeZone() { | |||
| 88 | LOG_ERROR(Common, "Time zone {} not handled, defaulting to hour offset.", tz_index); | 88 | LOG_ERROR(Common, "Time zone {} not handled, defaulting to hour offset.", tz_index); |
| 89 | } | 89 | } |
| 90 | } | 90 | } |
| 91 | return fmt::format("Etc/GMT{:s}{:d}", hours > 0 ? "-" : "+", std::abs(hours)); | 91 | |
| 92 | // For some reason the Etc/GMT times are reversed. GMT+6 contains -21600 as its offset, | ||
| 93 | // -6 hours instead of +6 hours, so these signs are purposefully reversed to fix it. | ||
| 94 | std::string postfix{""}; | ||
| 95 | if (hours > 0) { | ||
| 96 | postfix = fmt::format("-{:d}", std::abs(hours)); | ||
| 97 | } else if (hours < 0) { | ||
| 98 | postfix = fmt::format("+{:d}", std::abs(hours)); | ||
| 99 | } | ||
| 100 | |||
| 101 | return fmt::format("Etc/GMT{:s}", postfix); | ||
| 92 | } | 102 | } |
| 93 | 103 | ||
| 94 | } // namespace Common::TimeZone | 104 | } // namespace Common::TimeZone |