0

第一次来电,长期听众:) 喜欢这个网站。我是 Objective-C 的新手,但学得很好。对于这么简单的问题,我很抱歉,但我无法弄清楚。:(

我有两个 NSStrings 的格式: itemdate: [March 1, 2013] lastloaddate: [January 1, 1980]

我想找出哪个字符串(日期)是最新的。为此,我试图将 NSString 转换为 NSDate,然后进行比较,但我没有任何运气。这是我的代码。任何和所有的帮助将不胜感激!

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate *titemdate = [df dateFromString: itemdate];

NSDateFormatter *df1 = [[NSDateFormatter alloc] init];
[df1 setDateFormat:@"yyyy-MM-dd"];
NSDate *tlasttimerundate = [df1 dateFromString: lastdate];

if ([tlasttimerundate compare:titemdate] == NSOrderedDescending) 
{
   NSLog(@"itemdate is newer than lastdate");
}
4

1 回答 1

1

使用[df setDateFormat:@"MMMM d,YYYY"];代替[df setDateFormat:@"yyyy-MM-dd"];

MMMM格式将获得完整的日期月份,而MM格式将只是月份数。例如MM5MMMMMMay

要实现日期比较:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMMM d,YYYY"];
df.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"EN"];
NSDate *titemdate = [df dateFromString: itemdate];
NSDate *tlasttimerundate = [df dateFromString: lastdate];

if ([tlasttimerundate compare:titemdate] == NSOrderedDescending) 
{
   NSLog(@"itemdate is newer than lastdate");
}

您可以在此处找到有关日期格式的更多信息:http: //unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns

于 2013-05-17T09:01:28.353 回答