我有日期时间格式的字符串,例如:2013-05-28 10:56:31
如何将此字符串格式化为 iPhone 默认格式?(在 iPhone 设置中)
以及如何在 GMT 中设置日期时间加上时移偏移量(也在 iphone 中设置)。例如 GMT+1
这可能吗?
我有日期时间格式的字符串,例如:2013-05-28 10:56:31
如何将此字符串格式化为 iPhone 默认格式?(在 iPhone 设置中)
以及如何在 GMT 中设置日期时间加上时移偏移量(也在 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
是返回“使用接收器当前设置解释的字符串的日期表示”。