Translate

bloggerads內文

2017年4月13日 星期四

IOS date 轉換stinrg 8小時的問題

相信一些在使用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

沒有留言:

張貼留言