0

この NSString: "12/13/1980" を NSDate オブジェクトに変換する必要があります。次のようなコードを使用します。

NSString *birthday = @"12/13/1980"
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy"];
NSDate *date = [dateFormat dateFromString:dateString];

しかし、結果は次のようになります: "1980-12-12 23:00:00 +0000" なぜ? 同じ形式、同じ日付でお願いします。どうもありがとうございました。

4

3 に答える 3

2

この[dateFormat dateFromString:dateString]メソッドは、単一の時点を表す NSDate オブジェクトを生成します。

日付オブジェクトを NSLog すると、NSDate オブジェクトのシステム表現が出力されます。ロケールが GMT+1 であると想定しているため、NSLog は 12/12/1980 23:00 を出力します。

日付オブジェクトを印刷したい場合は、フォーマッタを使用して実行します[dateFormat stringFromDate:date];

于 2013-04-09T14:20:08.613 に答える
1

形式はローカリゼーションに依存します。日付/時刻が短い形式、中規模の形式、長い形式のいずれであるかを設定するオプションもあります。探しているのは短いものだと思います。

[dateFormatter setDateStyle:NSDateFormatterShortStyle];  
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html

于 2013-04-09T14:01:09.030 に答える
1

これは、NSDate オブジェクトには常に時刻とタイムゾーンが必要なためです。変換しようとしている文字列でそれを指定しないと、IOS はローカルのタイムゾーンを使用して時刻を推測します。この場合はUTC 0 で 23:00 になる

于 2013-04-09T14:14:25.587 に答える