3

我正在尝试为 iOS 开发一个依赖于调度程序和日历的事件应用程序。它使用在线数据库(解析数据库)来存储事件和用户详细信息。

细节:

  • 一个用户为特定日期创建事件(即从特定日期开始连续 5 周的每个星期一)并邀请其他用户参加事件。

  • 事件将仅在所有用户的定义日期激活,即如果事件日是星期一,则事件仅在所有用户的星期一(当地时间)的星期一激活。

问题:如何根据当地时间检查用户的事件是否处于活动状态?desc :如果事件日是星期五 (1/1/2016),则事件仅在星期五 (1/1/2016) 对所有用户有效,即用户本地时间是星期五 (1/1/2016),则事件对此有效用户。所有其他用户都一样。

如何在服务器数据库上维护它并通知用户今天的事件是活动的?我正在使用解析数据库,所有这些逻辑都将在 Parse 上使用 Cloud Code 实现。

编辑:我尝试根据 UTC 时区激活事件。对于上面的示例,事件在 1/1/2016 00:00:00.000Z 激活并在 2/1/2016 00:00:00.000Z 关闭。这适用于 UTC+00 的用户,但对于 UTC+5:30 的用户,事件在 2016 年 1 月 1 日 05:30:00 激活并在 2016 年 2 月 1 日 5:30:00 关闭。但事件应仅在 2016 年 1 月 1 日 00:00:00 到 2016 年 2 月 1 日 00:00:00 之间有效。对于具有不同时区的所有用户,同样的问题。

4

1 回答 1

0

// 尝试并比较下面给出的日期当更改时区时,然后将其设置为 01/01/2016 00:00:00 %@,例如 UTC、GMT 等.....

  NSDateFormatter *formated = [[NSDateFormatter alloc] init];
  formated.dateFormat = @"dd/MM/yyyy HH:mm:ss zzz";
  NSDate *utc = [formated dateFromString:@"01/01/2016 00:00:00 UTC"];
  formated.timeZone = [NSTimeZone systemTimeZone];
  NSString *local = [formated stringFromDate:utc];
  NSLog(@"%@", local);



  NSDateFormatter *formated2 = [[NSDateFormatter alloc] init];
  formated2.dateFormat = @"dd/MM/yyyy HH:mm:ss zzz";
  NSDate *utc2 = [formated2 dateFromString:@"02/01/2016 00:00:00 UTC"];
  formated2.timeZone = [NSTimeZone systemTimeZone];
  NSString *local2 = [formated2 stringFromDate:utc2];
  NSLog(@"%@", local2);
于 2016-01-01T04:36:14.513 回答