0

私のサーバー ログによると、iOS が次のような奇妙な日付を送信することがあります。

2013-08-029T05:15:11.578-0500(当日は029)

2013-09-05T06:43:030.479-0400(秒は030)

これは私のフォーマッタです:

if (sISO8601Formatter == nil)
{
    // See https://developer.apple.com/library/ios/#qa/qa1480/_index.html
    sISO8601Formatter = [[NSDateFormatter alloc] init];
    NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
    if (enUSPOSIXLocale)
        [sISO8601Formatter setLocale:enUSPOSIXLocale];
    sISO8601Formatter.dateFormat = @"yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSSZZZ";
}

そして、私は日付を次のようにフォーマットします:

+ (NSString *)formatDateWithISO8601:(NSDate *)date forTimeZone:(NSTimeZone *)timeZone
{
    [sISO8601Formatter setTimeZone:timeZone];
    return [sISO8601Formatter stringFromDate:date];
}

これは iOS の既知のバグですか、それともフォーマッタが間違っていますか? スレッドの問題である可能性はありますか?

4

0 に答える 0