DGKumar Ответов: 1

Местная дата и время неверны из UTC в C #


I have inserted the date time as UTC format (2019-05-06T17:48:43Z)and while trying to return that and trying to display based on locale it is displaying incorrect date.
Could you please assit on this how to handle this type of utc format datetimes to convert as user local time zone.


Что я уже пробовал:

Я пробовал с этим кодом всегда получать время с увеличением на 1 час.
Фактическое время Марокко : 9:10 утра
Но этот код показывает 10:10 утра

string utcLogTimeFromAPI = (String.Format("{0:s}", DateTime.UtcNow) + DateTimeOffset.UtcNow.ToString("%K"));
            TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Morocco Standard Time");
            DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(utcLogTimeFromAPI).ToUniversalTime(), cstZone);
            Console.WriteLine("cstTime " + cstTime);

Richard MacCutchan

Вы не сказали нам, в чем проблема. Но если действует летнее время, то преобразование местного времени должно быть правильным.

Gerry Schmitz

Похоже, ты преобразования мирового времени UTC

DateTime localTime = TimeZoneInfo.ConvertTimeToUtc(utcDateTime, cstZone);

DGKumar

Я уже пробовал с этим кодом
строка utcLogTimeFromAPI = (строка.Формат("{0:s}", Дата-Время.UtcNow) + DateTimeOffset.UtcNow.ToString("%K"));
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("стандартное время Марокко");
DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(Конвертировать.ToDateTime(utcLogTimeFromAPI).ToUniversalTime(), cstZone);
Приставка.WriteLine("cstTime" + cstTime);

Но получение дополнительного 1 часа во время показа
Любая вещь, которую я пропустил?

1 Ответов

Рейтинг:
1

OriginalGriff

Я подозреваю, что Джерри прав.:

Цитата:
Похоже, ты преобразования мирового времени UTC

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

Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Быстрый поиск в Google названия вашей IDE и "отладчика" должен дать вам информацию, необходимую для его использования.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!