0

これが以前に尋ねられた場合は申し訳ありませんが、私は多くのチェックを行いましたが、答えが見つからないようです. :(

文字列「2013-05-7 05:53:15 +0000」があり、それを NSDate に変換して、現在の日付と時刻と比較できるようにします。これを行う方法がわかりません。:( 変換に成功しましたが、文字列の外観が変わり、正確に 2013-05-7 05:53:15 +0000 にしたいのですが、これは他の NSDate アイテムと同じ形式であるためです。

どんな助けでも大歓迎です。

私は混乱しています。;) オブジェクティブ C の新機能。古い VB / 80 年代の古い C プログラマーがこの問題を解決しようとしています。ご協力ありがとうございました。:)

私のコードは次のようになります。

    NSDateFormatter *df1 = [[NSDateFormatter alloc] init];
//    [df1 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
    [df1 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
    df1.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"EN"];
  NSDate *titemdate1 = [df1 dateFromString: itemdate];

私が持っているのは2つの日付です。1 つはアプリが最後に実行された日付で、もう 1 つは JSON を使用してプルダウンしているアイテムの日付です。2 つの日付 (上記の文字列形式) を比較したい。文字列の NSLog を実行すると完璧に見えますが、NSDate に変換して比較すると問題が発生します。何か案は?

4

2 に答える 2

0

まず最初に、dateString を日付に変換し、日付の NSLog を実行すると、GMT 時刻が返されることを知っておく必要があります。これは、ほとんどの場合、システム時刻とは異なります。したがって、文字列を正しい形式で取得している場合、日付フォーマッタはおそらく正常に機能しています。これを確認するには、書式設定された日付を文字列に変換し、出力を印刷します。

NSLog(@"formatted date: %@",[df1 stringFromDate:titemdate1]);

それでも何も変わらず、出力がまだ間違っている場合は、フォーマッタの形式を変更してみてください。

[df1 setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ"];
于 2013-06-07T09:01:42.437 に答える