Browse Source

Add `TimeZoneHelper`.

pull/16993/head
maliming 3 years ago
parent
commit
7d0e462d24
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 27
      framework/src/Volo.Abp.Timing/Volo/Abp/Timing/TimeZoneHelper.cs
  2. 20
      modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/TimeZoneSettingsAppService.cs

27
framework/src/Volo.Abp.Timing/Volo/Abp/Timing/TimeZoneHelper.cs

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using TimeZoneConverter;
namespace Volo.Abp.Timing;
public static class TimeZoneHelper
{
public static List<NameValue> GetTimezones(List<NameValue> timezones)
{
return timezones
.OrderBy(x => x.Name)
.Select(x => new NameValue( $"{x.Name} ({GetTimezoneOffset(TZConvert.GetTimeZoneInfo(x.Name))})", x.Name))
.ToList();
}
public static string GetTimezoneOffset(TimeZoneInfo timeZoneInfo)
{
if (timeZoneInfo.BaseUtcOffset < TimeSpan.Zero)
{
return "-" + timeZoneInfo.BaseUtcOffset.ToString(@"hh\:mm");
}
return "+" + timeZoneInfo.BaseUtcOffset.ToString(@"hh\:mm");
}
}

20
modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/TimeZoneSettingsAppService.cs

@ -1,9 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using TimeZoneConverter;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Timing;
@ -29,22 +26,7 @@ public class TimeZoneSettingsAppService : SettingManagementAppServiceBase, ITime
public virtual Task<List<NameValue>> GetTimezonesAsync()
{
var timezones = TimezoneProvider.GetWindowsTimezones()
.OrderBy(x => x.Name)
.Select(x => new NameValue( $"{x.Name} ({GetTimezoneOffset(TZConvert.GetTimeZoneInfo(x.Name))})", x.Name))
.ToList();
return Task.FromResult(timezones);
}
protected virtual string GetTimezoneOffset(TimeZoneInfo timeZoneInfo)
{
if (timeZoneInfo.BaseUtcOffset < TimeSpan.Zero)
{
return "-" + timeZoneInfo.BaseUtcOffset.ToString(@"hh\:mm");
}
return "+" + timeZoneInfo.BaseUtcOffset.ToString(@"hh\:mm");
return Task.FromResult(TimeZoneHelper.GetTimezones(TimezoneProvider.GetWindowsTimezones()));
}
public virtual async Task UpdateAsync(string timezone)

Loading…
Cancel
Save