0

NSString * DateString の値が「01-10-2013 09:43:45」

そして、それから日付をフォーマットしたいのですが、私のコードは

 NSDateFormatter * DateFormatter = [[NSDateFormatter alloc]init];
            DateFormatter.dateFormat=@"MM-dd-yyyy HH:mm:ss";
            NSDate * Date =[DateFormatter dateFromString:DateString];  

しかし、日付をログに記録すると、その値は 2013-01-10 07:43:45 +0000 です。

4

2 に答える 2

4

NSDateFormatterを正しいタイムゾーンに設定する必要があります。

入力文字列が「現地時間」の場合は、次を使用します。

NSDateFormatter *DateFormatter = [[NSDateFormatter alloc]init];
[DateFormatter setTimeZone:[NSTimeZone systemTimeZone]];   // <--- Set to local time
DateFormatter.dateFormat=@"MM-dd-yyyy HH:mm:ss";
NSDate * Date =[DateFormatter dateFromString:DateString];  

入力文字列が UTC/GMT の場合は、代わりにこれを使用します。

NSDateFormatter *DateFormatter = [[NSDateFormatter alloc]init];
[DateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];   // <--- Set to UTC
DateFormatter.dateFormat=@"MM-dd-yyyy HH:mm:ss";
NSDate * Date =[DateFormatter dateFromString:DateString];  
于 2013-01-10T16:17:16.503 に答える
0

ロケールを設定してみる

...
[DateFormatter setLocale:[NSLocale currentLocale]];
...

ただし、「+0000」文字列を切りたい場合は、使用できます

[s substringToIndex:s.length - 5];
于 2013-01-10T17:04:34.440 に答える