2013-04-17 2 views
1

Мы находимся в Великобритании и предлагаем серию веб-сервисов, развернутых в Azure. Один из них автоматически обновляется каждые 5 минут и отображает сообщение «Последнее обновление после сообщения hh: mm: ss». Похоже, что это не учитывает летнее время, так как время отображается на один час по местному времени. Мы подозреваем, что он использует UTC. Мы попытались установитьНастройки глобализации и культуры на Azure

<globalization uiCulture="en" culture="en-GB"/> 

в web.config и программно без успеха. Есть ли более простое решение для отображения правильного локального времени, чем определение смещения DST и его применение во всех случаях «DateTime.Now()?»

Заранее благодарим за любую помощь.

ответ

0

@viperguynaz правильный, все Azure работает по UTC. Если вы работаете в Azure, вы должны держать его в UTC и не пытаться обойти его, потому что некоторые вещи не очень хорошо выглядят. Вместо этого, как разработчик программного обеспечения, вы должны добавить возможность в свое приложение соблюдать часовые пояса и обрабатывать данные, сохраненные как и службы, запущенные в UTC. Никогда не используйте DateTime.Now, но вместо этого всегда используйте DateTime.UtcNow.

Для получения дополнительной информации об этом см. this question.

0

У нас есть аналогичная Великобритания конкретной ситуации, и мы просто установить часовой пояс с помощью утилиты часового пояса tzutil в одной строке «повышенные простой» задача запуска:

tzutil /s "GMT Standard Time" 

Мы не видели никаких проблем с этим и временные метки всегда соответствуют нашим ожиданиям. Это кажется более простым, чем обеспечение того, что каждое взаимодействие с DateTime в коде выполняется локально в режиме времени/времени.

Я считаю, что эта утилита включена только в изображения Windows Server 2008 R2 и за ее пределами.