Как преобразовать convert_tz() в mysql в функцию С#
Функция mysql преобразования часового пояса в С#
Ответы (2)
изменить:
Используйте TimeZoneInfo и выберите зону по ее идентификатору (вот почему и как их проверить)
ВАЖНО. Эти данные не являются статическими. Новые часовые пояса вводятся в Windows по мере внесения изменений правительствами мира. В конечном счете, именно поэтому в документах нет авторитетных страниц, на которых они перечислены. Не полагайтесь на какой-либо жестко запрограммированный список, а вызовите TimeZoneInfo.FindTimeZoneById() самостоятельно или используйте TZUTIL.EXE /L для их перечисления. Приведенные ниже ответы являются всего лишь моментальным снимком данных на момент их публикации. НЕ КОПИРУЙТЕ ОТСЮДА, ЧТОБЫ ЗАПИСАТЬСЯ В ВАШЕ ПРИЛОЖЕНИЕ!
Пример кода:
var exampleTime = DateTime.SpecifyKind(DateTime.Now,DateTimeKind.Unspecified);
DateTime result = TimeZoneInfo.ConvertTime(exampleTime,
TimeZoneInfo.FindSystemTimeZoneById("Europe/London"),
TimeZoneInfo.FindSystemTimeZoneById("America/Denver"));
До рассматриваемых изменений:
Нет такой перегрузки для этого метода с такими параметрами.
Перегрузки TimeZoneInfo.ConvertTime — экран документации
Источник: Документация Microsoft
Вероятно, есть более чистые методы, но я сохраняю вспомогательную функцию, которая использует TimeZoneInfo (выполните поиск в документации MS, чтобы найти нужный вам идентификатор) в пользовательском классе TimeUtils.
public static DateTime ConvertToMST(DateTime dt)
{
DateTime utc = dt.ToUniversalTime();
return TimeZoneInfo.ConvertTimeFromUtc(utc, TimeZoneInfo.FindSystemTimeZoneById("Mountain Standard Time"));
}