Проблема преобразования даты по Гринвичу в местное время с использованием C #? - PullRequest
0 голосов
/ 20 февраля 2010

У нас есть приложение для Windows Mobile, написанное на C # (компактная структура). Региональные настройки установлены на (английский) Новая Зеландия. Часовой пояс установлен в GMT + 12 Новая Зеландия.

Мы храним наши даты в формате GMT ​​/ UTC. У нас свидание 2010-02-18 18:00:00 в UTC

На этот раз в Новой Зеландии 7:00 утра.

Когда мы вызываем объект datetime

starttime = starttime.ToLocalTime();

мы получаем 9:00 утра.
Что мы делаем не так?

1 Ответ

3 голосов
/ 20 февраля 2010

Вы указали "вид" в тот день? Примерно так:

DateTime parsedStartTime = DateTime.SpecifyKind(
    DateTime.Parse(starttime),
    DateTimeKind.Utc);

DateTime localStartTime = parsedStartTime.DateToLocalTime();

Это может помочь, поскольку может не знать, что дата и время, которые у вас сейчас есть, относятся к типу Utc (вероятно, они не указаны).

Если это не поможет, возможно, вам поможет код, показывающий, как вы устанавливаете время запуска.

...