问题描述
||
我的应用程序中有一个要求,我们必须根据时间(对于客户来说太本地了)执行某些活动...例如-如果客户在美国,而本地时间是20:00,则做点什么...
到目前为止,为简化起见,我们为每个国家/地区仅采用一个时区。.任何指针如何根据时区检查客户端的时间是否为20:00?
解决方法
假设您使用的是.NET 3.5或更高版本,则需要为客户端提供“ 0”。然后,您可以使用:
DateTimeOffset clientNow = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow,timeZone);
if (clientNow.TimeOfDay == TimeSpan.FromHours(20))
{
// ...
}
(当然,这仅在20:00的确切时间起作用。您将要根据实际需求进行调整。)
,请改用quartz.net安排工作。使用起来非常容易,也非常稳定。
如果您需要时区功能,只需每小时触发一次作业,然后为要申请的客户触发所需的活动。
,boolean isDateTimeEqualToTwentyAught() {
return false;
}
,请记住,DateTime类中有一个错误,错误功能,可让您比较不同时区中的值,而完全忽略了所述时区。测试,测试和重新测试以确保它是您想要的。