我從未創建過提醒應用程序。這是我如何看待它。如果我的方式正確,請讓我知道。如何在正確的時間爲不同時區的用戶發送提醒?
所以我有來自不同時區的用戶。
ID DateTimeUTC TimeZoneID
1 2011-07-12 02:15:15.000 TimeZneID1
2 2011-07-13 16:00:00.000 TimeZneID2
3 2013-11-03 17:00:00.000 TimeZneID3
4 2011-08-22 03:00:00.000 TimeZneID4
5 2011-07-16 22:00:00.000 TimeZneID5
創建計劃的進程來運行,每15分鐘,做下面的步驟:
- 獲取記錄;
- 第二個是將DateTimeUTC轉換爲正確時區的時間
- 比較是否匹配
a。發送提醒
var tzi = TimeZoneInfo.FindSystemTimeZoneById(TimeZneID1);
var local = TimeZoneInfo.ConvertTimeFromUtc(DateTimeUTC, tzi);
var timeNow = TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now, tzi);
if(local == timeNow)
SendReminder();
它是有效的方式嗎?這是正確的方式嗎?
好的,非常感謝你 –
爲了再次強調Jon的觀點 - 如果你希望在將數據從數據庫中提取出來時能夠進行這種日期數學計算,則必須將時間轉換爲UTC,然後再將其存儲到數據庫中數據庫。 –