Форма Xamarin: как перейти с текущего времени устройства на другое время страны

Я не слишком знаком с датой времени. В настоящее время мне интересно, как я могу преобразовать существующее время устройства в дату / время разных стран.

Например, App.CurrentDate <- отображает дату и время настройки устройства. Я хочу, чтобы это было во время другой страны при выборе другого сайта, где сайт может быть любой страны

Можно ли этого добиться?

1 ответ

Android и iOS используют имена часовых поясов IANA. Они выглядят так: "Америка / Нью-Йорк", и вы можете найти их список в Списке часовых поясов базы данных tz.

TimeZoneInfo estZone = TimeZoneInfo.FindSystemTimeZoneById("America/New_York");
DateTime estTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, estZone);

Ссылки:

1 http://www.xamarinhelp.com/time-zones-xamarin-forms/

2 https://help.syncfusion.com/xamarin/scheduler/timezone

Получите текущую дату и время в формате UTC

var utcTime = DateTime.UtcNow;

Затем конвертируйте его в любой часовой пояс, который вам нужен

TimeZoneInfo zone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
DateTime zoneTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, zone);

Вот как можно получить список всех часовых поясов

Подробнее о UTC

Также возможно определить часовой пояс на основе координат - этот ответ показывает, как

Другие вопросы по тегам