我在我的應用程序的要求,我們有基於時間(即過本地的客戶端)執行某些活動...例如 - 如果客戶是在美國和在客戶端的本地時間是20:00,然後做一些事情......如何檢查日期時間等於20:00 *本地*時間
到目前爲止,爲了簡化,我們正在採取只有一個時區每個國家。任何指針我怎麼能檢查時間是20:00在客戶端根據時區?您正在使用.NET 3.5或更高版本
我在我的應用程序的要求,我們有基於時間(即過本地的客戶端)執行某些活動...例如 - 如果客戶是在美國和在客戶端的本地時間是20:00,然後做一些事情......如何檢查日期時間等於20:00 *本地*時間
到目前爲止,爲了簡化,我們正在採取只有一個時區每個國家。任何指針我怎麼能檢查時間是20:00在客戶端根據時區?您正在使用.NET 3.5或更高版本
假設,你會希望TimeZoneInfo
客戶端。然後你可以使用:
DateTimeOffset clientNow = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow,
timeZone);
if (clientNow.TimeOfDay == TimeSpan.FromHours(20))
{
// ...
}
(當然,這隻會在精確即時的20:00的工作,你會想根據自己的實際需求進行調整。)
boolean isDateTimeEqualToTwentyAught() {
return false;
}
請記住,DateTime類中存在一個錯誤,錯誤,可讓您比較不同時區中的值完全忽略所述時區的錯誤。測試,測試和重新測試,以確保它是你想要的。
使用quartz.net安排一份工作吧。使用它非常容易,它也非常穩定。
如果您需要的時區的事情,只是觸發作業每隔一小時,並解僱你想要的活動適用的客戶。
這聽起來像你想建立一個計時器,在20:00發射,而不是明確檢查時間;否則你必須始終持續檢查它。 – 2011-04-14 06:48:47
對於建議的計時器+1。唯一的是,有幾個定時器可供選擇... – GregC 2011-04-14 07:01:21
我們已經有一個計劃的工作..我正在尋找Jon Skeet提供的C#代碼.. – sajoshi 2011-04-14 08:44:29