//获得系统时间 NSDate * senddate=[NSDate date]; NSDateFormatter *dateformatter=[[NSDateFormatteralloc] init]; [dateformatter setDateFormat:@"HH:mm"]; NSString * locationString=[dateformatter stringFromDate:senddate]; //[dateformatter setDateFormat:@"YYYY-MM-dd-HH-mm-ss"]; //NSString * morelocationString=[dateformatter stringFromDate:senddate]; //获得系统日期 (1) NSCalendar * cal=[NSCalendarcurrentCalendar]; NSUInteger unitFlags=NSDayCalendarUnit|NSMonthCalendarUnit|NSYearCalendarUnit; NSDateComponents * conponent= [cal components:unitFlags fromDate:senddate]; NSInteger year=[conponent year]; NSInteger month=[conponent month]; NSInteger day=[conponent day]; NSString * nsDateString= [NSString stringWithFormat:@"M年-月-日",year,month,day]; [dateformatter release]; (2)NSString* date; NSDateFormatter* formatter = [[NSDateFormatteralloc]init]; [formattersetDateFormat:@"YYYY-MM-dd%20hh:mm:ss"]; date = [formatterstringFromDate:[NSDatedate]]; date 显示为 2011-11-01%2012:12:12 想实现查找几天前的时间,可以用这个方法 NSDate* date = [[NSDate alloc] init]; date = [date dateByAddingTimeInterval:-5*3600*24];//这是用现在的时间,往前面减5天,得到的时间。 2. 从字符串来获得NSDate string strYear="1988"; string strMonth="09"; string strDay="18"; string strHour="5"; string strMinutes="18"; string strSec="20"; morelocationString=[NSString stringWithFormat:@"%s-%s-%s-%s-%s-%s",strYear.c_str(),strMonth.c_str(), strDay.c_str(),strHour.c_str(),strMinutes.c_str(),strSec.c_str()]; //根据时间字符串获得NSDate NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"YYYY-MM-dd-HH-mm-ss"]; NSDate * oldDate=[dateformatter dateFromString:morelocationString]; 3. 从GMT时间,得到本地时间 NSDate * oldDate=[dateformatter dateFromString:morelocationString]; NSTimeInterval timeZoneOffset=[[NSTimeZonesystemTimeZone] secondsFromGMT]; NSDate * newDate=[oldDate dateByAddingTimeInterval:timeZoneOffset];
原文:http://www.cnblogs.com/someonelikeyou/p/3533335.html