0

初めての発信者、長年のリスナー:) このサイトが大好きです。私は Objective-C を初めて使用しますが、非常に楽しく学習しています。こんな簡単な質問で申し訳ありませんが、わかりません。:(

itemdate: [2013 年 3 月 1 日] lastloaddate: [1980 年 1 月 1 日] という形式の 2 つの NSString があります。

どの文字列 (日付) が最新であるかを調べたい。これを行うには、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は月数のみになります。たとえば、MMとです。5MMMMMMay

日付を比較するには:

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 に答える