В основном я хочу преобразовать время США (время сервера) в GMT (летнее время Великобритании)
технология C #, .NET 4.0, TimeZoneInfoClass
Подробный сценарий:
Я создаю приложение для отправки SMS. Не следует отправлять смс с 10:00 до 6:30 по британскому времени или по Гринвичу.
Сервер находится в США или, предположим, в любой точке мира.
Так что мой подход
Я предполагаю, что на хостинг-сервере есть автоматическое исправление дневного света. Поэтому я не проверяю сервер на летнее время. Это нормально ??
Он корректируется по времени США автоматически, и я получу правильное время через UTCNow()
Я получаю время по Гринвичу из метода timezoneinfoclass
или Time.UTCNow()
. Теперь у меня есть правильное время UTC, и я должен проверить летнее / зимнее время (британский часовой пояс)
, наконец, я проверяю параметр для целевого часового пояса (например, в Великобритании), например, Datetime,UTCoffset,IsDayLightSaving,SupportDaylightSaving
на основе идентификатора часового пояса машины (часовой пояс GMT, Лондон ..). Например: -timezoneid.local.searchbyma .. (GMT) // * Синтаксис)
if (IsDayLightSaving==true)
{
UTC.AddHours(1) //syntax is not correct
}
else
{
// GMT= UK time
}
ОС У меня есть следующие вопросы: -
Это хороший подход или ошибочный? Какие есть альтернативы?
Должен ли я проверить летнее время для хостинга часового пояса, а затем исправить смещение, добавив один час, если это летнее время ??
Какие-нибудь бесплатные надежные веб-сервисы для получения времени по Гринвичу?
Пожалуйста, предложите
Спасибо