2011-04-14 57 views
2

我在我的應用程序的要求,我們有基於時間(即過本地的客戶端)執行某些活動...例如 - 如果客戶是在美國和在客戶端的本地時間是20:00,然後做一些事情......如何檢查日期時間等於20:00 *本地*時間

到目前爲止,爲了簡化,我們正在採取只有一個時區每個國家。任何指針我怎麼能檢查時間是20:00在客戶端根據時區?您正在使用.NET 3.5或更高版本

+1

這聽起來像你想建立一個計時器,在20:00發射,而不是明確檢查時間;否則你必須始終持續檢查它。 – 2011-04-14 06:48:47

+0

對於建議的計時器+1。唯一的是,有幾個定時器可供選擇... – GregC 2011-04-14 07:01:21

+0

我們已經有一個計劃的工作..我正在尋找Jon Skeet提供的C#代碼.. – sajoshi 2011-04-14 08:44:29

回答

3

假設,你會希望TimeZoneInfo客戶端。然後你可以使用:

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

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

(當然,這隻會在精確即時的20:00的工作,你會想根據自己的實際需求進行調整。)

2
boolean isDateTimeEqualToTwentyAught() { 
    return false; 
} 
1

請記住,DateTime類中存在一個錯誤,錯誤,可讓您比較不同時區中的值完全忽略所述時區的錯誤。測試,測試和重新測試,以確保它是你想要的。

3

使用quartz.net安排一份工作吧。使用它非常容易,它也非常穩定。

如果您需要的時區的事情,只是觸發作業每隔一小時,並解僱你想要的活動適用的客戶。

相關問題