У меня есть приложение asp.net mvc с ядром dotnet, которое должно делать преобразования часовых поясов между UTC, Центральным часовым поясом и сингапурским стандартным временем. У меня это работает в среде разработки Windows, используя метод TimeZoneInfo.FindSystemTimeZoneById
, чтобы установить экземпляр часового пояса и передать этот экземпляр часового пояса в TimeZoneInfo.ConvertTime
, чтобы получить время для требуемого часового пояса. Тем не менее, при развертывании веб-приложения для CentOS7 я получаю ошибку:dotnet core crossplatform (Windows & CentOS) ошибка преобразования часового пояса
"Could not find file '/usr/share/zoneinfo/Central Standard Time'."
Что мне нужно сделать, чтобы получить эту работу на обеих платформах?
public TimeZoneInfo TimeZoneInstance
{
get
{
if (_timeZoneInstance == null)
{
try
{
_timeZoneInstance = TimeZoneInfo.FindSystemTimeZoneById(TimeZone);
}
catch
{
TimeZone = "Central Standard Time";
_timeZoneInstance = TimeZoneInfo.FindSystemTimeZoneById(TimeZone);
}
}
return _timeZoneInstance;
}
private set { _timeZoneInstance = value; }
}
public DateTime? GetUserTime(DateTime? utcTime = null)
{
if (utcTime == null)
return utcTime;
return TimeZoneInfo.ConvertTime(DateTime.SpecifyKind(utcTime.Value, DateTimeKind.Utc), TimeZoneInfo.Utc, TimeZoneInstance);
}
public DateTime? GetUtcTime(DateTime? localTime)
{
if (localTime == null)
return localTime;
return TimeZoneInfo.ConvertTime(localTime.Value, TimeZoneInstance, TimeZoneInfo.Utc);
}