У нас есть приложение для Windows Mobile, написанное на C# (compact framework). Региональные настройки установлены на (английский) Новая Зеландия. Часовой пояс установлен на GMT+12 Новая Зеландия.
Мы храним наши даты в формате GMT/UTC. У нас есть дата 2010-02-18 18:00:00 по UTC
На этот раз в Новой Зеландии 7:00 утра.
Когда мы вызываем объект datetime
starttime = starttime.ToLocalTime();
мы получаем 9:00 утра.
Что мы делаем неправильно?
Ответ 1 · рейтинг 3 · Tim C
Вы указали "вид" на этой дате и времени? Что-то вроде этого:
DateTime parsedStartTime = DateTime.SpecifyKind(
DateTime.Parse(starttime),
DateTimeKind.Utc);
DateTime localStartTime = parsedStartTime.DateToLocalTime();
Это может помочь, поскольку он может не знать, что дата и время, которые у вас есть сейчас, имеют тип Utc (вероятно, он не указан).
Если это не поможет, возможно, вам поможет часть вашего кода, показывающая, как вы устанавливаете время запуска.