LANCommander/LANCommander.UI/Providers/LocalTimeProvider.cs

25 lines
716 B
C#
Raw Permalink Normal View History

2025-03-17 02:02:17 -05:00
namespace LANCommander.UI.Providers;
public class LocalTimeProvider : TimeProvider
{
private TimeZoneInfo? _localTimeZone;
public event EventHandler? LocalTimeZoneChanged;
public override TimeZoneInfo LocalTimeZone => _localTimeZone ?? base.LocalTimeZone;
internal bool IsLocalTimeZoneSet => _localTimeZone != null;
public void SetLocalTimeZone(string timeZone)
{
if (!TimeZoneInfo.TryFindSystemTimeZoneById(timeZone, out var timeZoneInfo))
timeZoneInfo = null;
if (timeZoneInfo != LocalTimeZone)
{
_localTimeZone = timeZoneInfo;
LocalTimeZoneChanged?.Invoke(this, EventArgs.Empty);
}
}
}