【发布时间】:2013-12-30 23:01:12
【问题描述】:
我正在获取当前日期并将其与预定义日期进行比较,但是我遇到了字符串有时不同的问题。我的代码:
NSDate *todaysDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
NSString *dateToday = [dateFormatter stringFromDate:todaysDate];
NSLog(@"%@", dateToday);
有时我会收到“2013 年 12 月 30 日” - 有时会收到“2013 年 12 月 30 日”(没有逗号),有时会收到“2013 年 12 月 30 日”。我不明白为什么会发生这种情况。
有什么想法吗?
编辑:回答提出的问题。我只是想查看当前日期是否与预定义日期相同,或者是否超出该日期。我的代码是:
if ([dateToday isEqual: @"30 Dec 2013"]) {
//It's the day of the event, run the day view
[self performSegueWithIdentifier:@"mainToDay" sender:self];
} else if ([todaysDate timeIntervalSinceDate:postEventDate] > 0) {
//It's after the event, run the post event screen
[self performSegueWithIdentifier:@"mainToPost" sender:self];
}
我只是使用日志来查看返回的内容然后模拟它。我没有意识到它会改变。 :)
干杯。
【问题讨论】:
-
您的预定义日期是什么形式的?比较字符串可能不是最好的方法。但如果你这样做了,你至少应该使用明确的日期格式和明确的语言环境,以确保结果一致。
-
您最好使用
NSDateComponents构造第二个日期 - 并比较NSDates,而不是它们的字符串表示(如果您对两个日期使用相同的固定格式,您也可以比较字符串表示) .见stackoverflow.com/a/1563874/653513 -
我根据您的更新更新了我的答案