0

NSString以下をに変換したいNSDate@"2013-04-01T22:00:00Z"

私は次のコードを使用しています:

NSString *dateString = @"2013-04-01T22:00:00Z";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
NSDate *theDate = [dateFormatter dateFromString:dateString];

印刷するtheDateと、次の回答が得られます: 2013-04-01 20:00:00 +0000

なぜ時間が 22:00 ではなく 20:00 なのか疑問に思っているのですが、何かアイデアはありますか?

ありがとう!

4

2 に答える 2

3

NSDateFormatterあなたのdateFormatはあなたのローカルタイムゾーンを使用するタイムゾーンを指定していないためです。タイムゾーンを自分で設定する必要があります。文字列の Z は GMT を意味します。

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
于 2012-05-26T11:09:08.453 に答える
1

コードでタイムゾーンを試してください。デフォルトのタイムゾーンで試しました。その正常に動作します。

NSString *dateString = @"2013-04-01T22:00:00Z";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
    [dateFormatter setTimeZone:[NSTimeZone defaultTimeZone];
    NSDate *theDate = [dateFormatter dateFromString:dateString];
于 2012-05-26T11:11:08.327 に答える