common: Move system time zone string detection

Moves it from Settings to Common::TimeZone, since this algorithm doesn't
depend on the setting. It also lets us use it in other libraries.

common: Various fixes

time_zone: Don't double up the std::abs

Too many absolute values were causing mirrored time zones to resolve
as the same.
This commit is contained in:
lat9nq 2023-05-23 18:32:28 -04:00
parent 011438fa95
commit 3979c7daa4
3 changed files with 84 additions and 76 deletions

View file

@ -3,15 +3,21 @@
#pragma once
#include <array>
#include <chrono>
#include <string>
namespace Common::TimeZone {
[[nodiscard]] const std::array<const char*, 46>& GetTimeZoneStrings();
/// Gets the default timezone, i.e. "GMT"
[[nodiscard]] std::string GetDefaultTimeZone();
/// Gets the offset of the current timezone (from the default), in seconds
[[nodiscard]] std::chrono::seconds GetCurrentOffsetSeconds();
/// Searches time zone offsets for the closest offset to the system time zone
[[nodiscard]] std::string FindSystemTimeZone();
} // namespace Common::TimeZone