1
double seconds = -62167464057.000;
NSDate *oldDate = [NSDate dateWithTimeIntervalSince1970:seconds];
MELog("oldDate = %@", oldDate);//oldDate = 0002-12-29 03:59:03 +0000

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init]  autorelease];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];

NSString *formattedDateString = [dateFormatter stringFromDate:oldDate];
NSLog(@"formattedDateString = %@", formattedDateString);//formattedDateString = 3:57 AM

上記のコードでは、日付コンポーネントの時刻は 3:59 ですが、時刻フィールドを抽出するようにフォーマットすると、3:57 になります。

私のタイムゾーンはロンドンなので、3:59 が返されます。

これは、1970 年より前の日付をフォーマットしようとしているためですか? わかる方確認お願いします。

4

2 に答える 2

-5

あなたのコードでは、時間間隔を 1970 年に設定しています。それが原因である可能性があります。それを使用しないで、自分で最小日付を設定してください。

于 2012-10-11T05:47:45.817 に答える