Parse.com + NSDate:转换解析日期检索到当地时区

时间:2015-08-30 08:35:39

标签: ios date parse-platform nsdate

我在从“TODAY”解析下载对象时遇到了非常困难的问题。

我正在下载的对象是事件。每个都有一个startTime属性(NSDate) - 它存储事件的日期和时间。通过阅读Stackoverflow.com上的Parse文档和其他问题,Parse中的日期将存储为“UTC”时区。

如果我尝试类似的话,当我没有得到任何结果时:

[query whereKey:@"startTime" greaterThan:[NSDate date]]; 

现在我不关心时间开始时间,只关心以下格式的日期:“MM / dd”

我尝试检索所有对象并将开始时间转换为本地时间,但没有取得任何成功。当我进行转换时,startTimes实际上是休息一天(落后一天)。因此,如果活动是08/29 - 它打印08/28。

我尝试将其转换为当地时间,然后比较结果是否等于今天的日期,但仍然没有运气。

NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/"];
[dateFormat Time:@"MM/dd/":[NSTimeZone systemTimeZone]];
NSDateFormatter *todayDateFormat = [[NSDateFormatter alloc] init];
[todayDateFormat setDateFormat:@"MM/dd"];
NSString *todayString = [dateFormat stringFromDate:today];
NSString *activityDateString = [dateFormat stringFromDate:event.startTime];

if ([todayString isEqualToString:activity.activityDate]){
  //add to events array. 
}

任何帮助都会非常感激。我花了这么多时间试图完成这项工作并且没有成功。

谢谢!

1 个答案:

答案 0 :(得分:1)

Parse使用UTC时间。所以要把它转换成你应该的时间:

NSDate *objDate = [parseObject objectAtIndex:indexPath.row];
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MM/dd"];
[format setTimeZone:[NSTimeZone systemTimeZone]];
NSString *date = [format stringFromDate:objDate];