我从我的服务器接收日期/时间作为 NSString,我正在使用 NSTimeZone 将该时间转换为用户本地时间的 NSDate。之后,我尝试使用新的 NSDateFormatter 格式将此 NSDate 重新格式化为更易读的 NSString,但是当我尝试应用这种新格式时,它会将生成的 dateString 恢复为原始服务器时间。
我想知道我做错了什么,我想以新格式显示转换后的时间。
这是我正在使用的代码
// set date format
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
// change time to systemTimeZone
NSTimeZone *timeZone = [NSTimeZone systemTimeZone];
[dateFormatter setTimeZone:timeZone];
NSDate *localTime = [dateFormatter dateFromString:[singleInstanceActivationHistoryDictionay objectForKey:@"ActivationTime"]];
// reformat converted Time to readable format
NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc] init];
[dateFormat1 setDateFormat:@"dd/MM/yy - hh:mm a"];
NSString *dateWithNewFormat = [dateFormat1 stringFromDate:localTime];
NSLog(@"TimeZone - %@", timeZone);
NSLog(@"UTC ServerTime - %@", [singleInstanceActivationHistoryDictionay objectForKey:@"ActivationTime"]);
NSLog(@"UTC to deviceTimeZone - %@", localTime);
NSLog(@"NewFormat - %@", dateWithNewFormat);
这是我的输出示例
TimeZone - Pacific/Auckland (NZST) offset 43200
UTC ServerTime - 2013-08-22 01:45:59
UTC to deviceTimeZone - 2013-08-21 13:45:59 +0000
NewFormat - 22/08/13 - 01:45 AM
任何帮助将不胜感激