我从未创建过提醒应用程序.我就是这样看的.如果我的方式正确,请告诉我.
所以我有来自不同时区的用户.
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
Run Code Online (Sandbox Code Playgroud)
创建一个每15分钟运行一次的计划流程并执行以下步骤:
var tzi = TimeZoneInfo.FindSystemTimeZoneById(TimeZneID1);
var local = TimeZoneInfo.ConvertTimeFromUtc(DateTimeUTC, tzi);
var timeNow = TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now, tzi);
if(local == timeNow)
SendReminder();
这是有效的方式吗?这是正确的方法吗?
如果数据库中的日期/时间值已经是UTC,则无需执行任何转换,当然......您只需要查看当前UTC时刻是否匹配,如果是,则发送提醒.
这假设你真的在数据库中意味着它是UTC,也就是说,当你输入提醒时你已经从用户的当地时间转换它(假设他们这样做是为了开始).
| 归档时间: |
|
| 查看次数: |
687 次 |
| 最近记录: |