我在传入的字符串中有一个这样格式化的时区,我无法控制(它来自服务器的字典)
tzHours = NSString * @"+01:00"
但我需要将其转换为NSTimeZone
,以便我可以格式化日期
NSString *date = [dateDictionary safeObjectForKey:@"date"];
NSString *time = [dateDictionary safeObjectForKey:@"time"];
NSString *tzHours = [dateDictionary safeObjectForKey:@"timeZone"];
// Format the date based off the timezone
NSDateFormatter *formatter = [self _apiDateFormatterWithTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
但我不确定该怎么做。
有没有办法处理这个问题?
非常感谢
答案 0 :(得分:3)
因此,您有三个NSString
:date
,time
和tzHours
。你可以这样做:
NSString *date = @"2015-01-01";
NSString *time = @"14:00:01";
NSString *tzHours = @"+01:00";
NSString *dateString = [NSString stringWithFormat:@"%@ %@ %@", date, time, tzHours];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss ZZZZZ";
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSDate *dateObject = [dateFormatter dateFromString:dateString];
dateFormat
的{{1}}自然取决于NSDateFormatter
和date
的格式。
还要记住缓存time
,否则你会遇到性能问题。