日時形式の文字列があります。例:2013-05-28 10:56:31
この文字列を iPhone のデフォルト形式にフォーマットするにはどうすればよいですか? (iPhoneの設定で)
そして、GMTプラスタイムシフトオフセットでdatetimeを設定する方法(iPhoneでも設定)。例: GMT+1
これは可能ですか?
日時形式の文字列があります。例:2013-05-28 10:56:31
この文字列を iPhone のデフォルト形式にフォーマットするにはどうすればよいですか? (iPhoneの設定で)
そして、GMTプラスタイムシフトオフセットでdatetimeを設定する方法(iPhoneでも設定)。例: GMT+1
これは可能ですか?
これを実現するには、NSDateFormatter を使用できます。
NSString *dateString = @"2013-05-28 10:56:31";
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
//Special Locale for fixed dateStrings
NSLocale *locale = [[NSLocale alloc]initWithLocaleIdentifier:@"en_US_POSIX"];
[formatter setLocale:locale];
//Assuming the dateString is in GMT+00:00
//formatter by default would be set to local timezone
NSTimeZone *timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
[formatter setTimeZone:timeZone];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date =[formatter dateFromString:dateString];
//After forming the date set local time zone to formatter
NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];
[formatter setTimeZone:localTimeZone];
NSString *newTimeZoneDateString = [formatter stringFromDate:date];
NSLog(@"%@",newTimeZoneDateString);
dateFormatter を使用するためのいくつかの指針。
en_US_POSIX
ロケールを使用しますNSDateFormatterに関するドキュメントを参照してください。具体的dateFromString
には、「受信者の現在の設定を使用して解釈された文字列の日付表現」を返します。