0

NSDateを持っていますが、使用すると以下のように表示されますNSLog(@"%@", date.description);

2010-12-31 15:00:00 +0000

使用したように表示されますNSLog(@"%@", [date descriptionWithLocale:[[NSLocale currentLocale] localeIdentifier]]);

2011年1月1日土曜日12:00:00AM日本標準時

ただし、使用した場合は以下のように表示されますNSLog(@"%@", [date formattedDateString]);

2010-01-01 00:00:00 +0900

どこを間違えますか?

- (NSString *)formattedDateString {
    return [self formattedStringUsingFormat:@"YYYY-MM-dd HH:mm:ss ZZZ"];
}

- (NSString *)formattedStringUsingFormat:(NSString *)dateFormat {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:dateFormat];
    NSString *ret = [formatter stringFromDate:self];
    [formatter release];
    return ret;
}
4

3 に答える 3

3

私は以下のように必要なものを手に入れました:

-(NSString *)formattedDateString {
  return [self formatedStringUsingFormat:@ "yyyy-MM-dd HH:mm:ss ZZZ"];
}

于 2010-12-31T13:38:55.443 に答える
1

NSDateのサブクラスがありますよね?私の唯一の推測は、おそらく日付の時間コンポーネントを設定して(いわば)説明文字列またはそのソースデータが正しく更新されなかったときに、オーバーライドコードのどこかで間違いを犯したということです。

編集:ああ、あなたはそれを機能させました、素晴らしい。数秒遅すぎます。:) 乾杯!

于 2010-12-31T13:41:44.693 に答える
0

2010-01-01 00:00:00 +900とは2010-12-31 15:00:00 +000同時に指します。

編集
両方2011-01-01 00:00:00 +9002010-12-31 15:00:00 +000同じ時間を指します。

たまたまGMT+9(東京としましょう)に住んでいますか?

于 2010-12-31T13:00:03.313 に答える