相信一些在使用api 取json資料時可能會遇到日期格式,但碰到轉字串時,奇怪!怎會少8小時及多8小時的問題,如果偶遇到此情況,
以下方法可以試看看.
1.轉換string多了8小时時
- (NSString*)dateAsString:(NSDate*)date {
NSTimeZone *timeZone=[NSTimeZonetimeZoneWithName:@"UTC"];
NSDateFormatter *formatter=[[NSDateFormatteralloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[formatter setTimeZone:timeZone];
NSString * timeString = [formatter stringFromDate:date];
return timeString;
}
原因:無論環境是使用12小時制還是24小時制,yyyy-MM-dd HH:mm:ss返回都是24小時制。設置TimeZone為UTC ,這樣使得轉換時間不會出現8小時誤差
2.轉換string少了8小時
- (NSString*)dateAsString:(NSDate*)date {
NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
formatter.dateFormat=@"yy-MM-dd HH:mm:ss";
NSString *timeStr=[formatter stringFromDate:date];
NSTimeZone *timeZone=[NSTimeZone systemTimeZone];
NSInteger seconds=[timeZone secondsFromGMTForDate:date];
NSDate *newDate=[date dateByAddingTimeInterval:seconds];
NSString *newTimeStr=[formatter stringFromDate:newDate];
return timeString;
}
出處:http://blog.sina.com.cn/s/blog_708663ad0102wf1z.html
沒有留言:
張貼留言