1. 通过使用NSDateFormatter
NSTimeZone * zone = [NSTimeZone systemTimeZone];
Zone.secondsFromGMT = 28800;// 8 * 3600 东八区
NSDateFormatter* fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss.SSS zzz";
fmt.timeZone = zone;
NSString* str = [fmt stringFromDate:_date];
// 2012-11-02 18:06:21.965 GMT+08:00
2. 通过使用NSCalendar日历对象
//获得日历对象
NSCalendar *calender = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
//通过日历对象获得日期组件对象NSDateComponents
NSUInteger units = NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit;
NSDateComponents *components = [calender components:units fromDate:selected];
//格式化字符串
NSString *msg = [NSString stringWithFormat:@"%d年%d月%d日 %d时%d分%d秒", [components year], [components month], [components day], [components hour], [components minute], [components second]];