Функция mysql преобразования часового пояса в С# [дубликат]

avatar
Andy
1 июля 2021 в 18:39
65
2
-1

Как преобразовать convert_tz() в mysql в функцию C#

Источник
O. Jones
1 июля 2021 в 21:54
0

MySQL использует эту штуку, называемую tz или база данных zoneinfo. Я выбрал повторяющийся вопрос, потому что он показывает способы реализации той же базы данных на C#/dotnet.

Ответы (2)

avatar
jtucker13
1 июля 2021 в 21:26
0

Вероятно, существуют более чистые методы, но я сохраняю вспомогательную функцию, которая использует TimeZoneInfo (выполните поиск в документации MS, чтобы найти нужный вам идентификатор) в пользовательском классе TimeUtils

public static DateTime ConvertToMST(DateTime dt)
{
    DateTime utc = dt.ToUniversalTime();
    return TimeZoneInfo.ConvertTimeFromUtc(utc, TimeZoneInfo.FindSystemTimeZoneById("Mountain Standard Time"));
}
avatar
Malgosiek
1 июля 2021 в 20:06
0

изменить:

Используйте 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

Andy
1 июля 2021 в 21:17
0

Я знаю, но я пытаюсь найти что-то, что может делать то, что я искал. Я относительно новичок в библиотеках С#, и существует так много разных функций часового пояса, что я немного потерялся.

Malgosiek
2 июля 2021 в 08:47
0

@Энди, я отредактировал свой пост, посмотри. Я надеюсь, что это поможет, gl!