Как проверить, что дата и время равны 20:00 * по местному * времени - PullRequest
2 голосов
/ 14 апреля 2011

У меня есть требование в моем приложении, где мы должны выполнять определенные действия, основанные на времени (это слишком локально для клиента) ... Например - если клиент находится в США, а местное время на клиенте составляет 20 : 00 тогда сделай что-нибудь ...

Пока что для упрощения мы берем только один часовой пояс для каждой страны. Любые указатели, как я могу проверить, является ли время на клиенте 20:00 на основе часового пояса ??

Ответы [ 4 ]

3 голосов
/ 14 апреля 2011

Используйте quartz.net , чтобы запланировать работу. С ним очень легко работать, и он очень стабилен.

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

3 голосов
/ 14 апреля 2011

Предполагая, что вы используете .NET 3.5 или выше, вам понадобится TimeZoneInfo для клиента. Тогда вы можете использовать:

DateTimeOffset clientNow = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow,
                                                    timeZone);

if (clientNow.TimeOfDay == TimeSpan.FromHours(20))
{
    // ...
}

(Конечно, это сработает только в точное мгновение 20:00. Вы захотите настроить его в соответствии с вашими реальными требованиями.)

2 голосов
/ 14 апреля 2011
boolean isDateTimeEqualToTwentyAught() {
  return false;
}
1 голос
/ 14 апреля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...