0

重複の可能性:
iPhone iOS 4.3 で GMT を返す NSDate / NSDateFormatter

次のコードを実行すると

NSString *inputDateString=@"2012-10-19 19:37:54";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *test=[formatter dateFromString:inputDateString];

「test」の値は、inputDateString に相当する日付値ではなく、2012-10-19 23:37:54 +0000 です。日付が GMT に変換されるのはなぜですか?

編集:入力文字列の日付を取得して、それを同等の NSDate オブジェクトに変換するにはどうすればよいですか?

4

1 に答える 1

2

NSDateタイムゾーンを保存せず、気にもしません。NSDate指定された基準日 (2001 年 1 月 1 日) からの経過時間のみを格納します。このように使用するNSDateFormatterと、文字列を日付オブジェクトに変換するときに、日付のタイムゾーンがユーザーの現在のタイムゾーンと一致すると想定されますが、日付NSLogを確認するために使用すると、タイムゾーン情報がありません。ただし、日付は依然として正しく、入力値と等しいことに注意してください。

于 2012-10-19T19:46:39.017 に答える