iPhone开发--NSDate操作

//得到当前的日期 
NSDate *date = [NSDate date]; 
NSLog(@"date:%@",date); 
 
//得到(24 * 60 * 60)即24小时之前的日期,dateWithTimeIntervalSinceNow: 
NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow: -(24 * 60 * 60)]; 
NSLog(@"yesterday:%@",yesterday); 
 
NSDateFormatter *formatter =[[[NSDateFormatter alloc] init] autorelease]; 
NSDate *date = [NSDate date]; 
[formatter setTimeStyle:NSDateFormatterMediumStyle]; 
NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; 
NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease]; 
NSInteger unitFlags = NSYearCalendarUnit | 
NSMonthCalendarUnit | 
NSDayCalendarUnit | 
NSWeekdayCalendarUnit | 
NSHourCalendarUnit | 
NSMinuteCalendarUnit | 
NSSecondCalendarUnit; 
//int week=0; 
comps = [calendar components:unitFlags fromDate:date]; 
int week = [comps weekday]; 
int year=[comps year]; 
int month = [comps month]; 
int day = [comps day]; 
//[formatter setDateStyle:NSDateFormatterMediumStyle]; 
//This sets the label with the updated time. 
int hour = [comps hour]; 
int min = [comps minute]; 
int sec = [comps second]; 
NSLog(@"week%d",week); 
NSLog(@"year%d",year); 
NSLog(@"month%d",month); 
NSLog(@"day%d",day); 
NSLog(@"hour%d",hour); 
NSLog(@"min%d",min); 
NSLog(@"sec%d",sec); 
 
//得到毫秒 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; 
[dateFormatter setTimeStyle:NSDateFormatterShortStyle]; 
//[dateFormatter setDateFormat:@"hh:mm:ss"] 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"]; 
NSLog(@"Date%@", [dateFormatter stringFromDate:[NSDate date]]); 
[dateFormatter release]; 
 
========================================== 
方法一 
 
NSDate* toDate1 = [ [ NSDate alloc] initWithString:@"2520-9-26 17:10:00 +0600" ]; 
NSTimeInterval distance = [ toDate1 timeIntervalSinceNow ]; 
NSTimeInterval iDat = distance / ( 86400 ) ; 
NSLog( @" From now to %@ diff: %f ", [toDate1 description ], iDat ); 
[ toDate1 release ]; 
 
方法二 
NSDate* toDate   = [ [ NSDate alloc] initWithString:@"2009-9-29 0:0:00 +0600" ]; 
NSDate* startDate   = [ [ NSDate alloc] init ]; 
NSCalendar* chineseClendar = [ [ NSCalendar alloc ] initWithCalendarIdentifier:NSGregorianCalendar ]; 
 
NSUInteger unitFlags =  NSHourCalendarUnit | NSMinuteCalendarUnit | 
NSSecondCalendarUnit | NSDayCalendarUnit 
| NSMonthCalendarUnit | NSYearCalendarUnit; 
 
NSDateComponents *cps = [ chineseClendar components:unitFlags fromDate:startDate toDate:toDate options:0]; 
NSInteger diffHour = [ cps hour ]; 
NSInteger diffMin = [ cps minute ]; 
NSInteger diffSec = [ cps second ]; 
NSInteger diffDay = [ cps day ]; 
NSInteger diffMon = [ cps month ]; 
NSInteger diffYear = [ cps year ]; 
NSLog( @" From Now to %@, diff: Years: %d Months: %d, Days; %d, Hours: %d, Mins:%d, sec:%d", 
[toDate description], diffYear, diffMon, diffDay, diffHour, diffMin,diffSec ); 
[ toDate release ]; 
[ startDate release ]; 
[ chineseClendar release ]; 
NSDate

//得到当前的日期 www.2cto.com
NSDate *date = [NSDate date];
NSLog(@"date:%@",date);

//得到(24 * 60 * 60)即24小时之前的日期,dateWithTimeIntervalSinceNow:
NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow: -(24 * 60 * 60)];
NSLog(@"yesterday:%@",yesterday);

NSDateFormatter *formatter =[[[NSDateFormatter alloc] init] autorelease];
NSDate *date = [NSDate date];
[formatter setTimeStyle:NSDateFormatterMediumStyle];
NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];
NSInteger unitFlags = NSYearCalendarUnit |
NSMonthCalendarUnit |
NSDayCalendarUnit |
NSWeekdayCalendarUnit |
NSHourCalendarUnit |
NSMinuteCalendarUnit |
NSSecondCalendarUnit;
//int week=0;
comps = [calendar components:unitFlags fromDate:date];
int week = [comps weekday];
int year=[comps year];
int month = [comps month];
int day = [comps day];
//[formatter setDateStyle:NSDateFormatterMediumStyle];
//This sets the label with the updated time.
int hour = [comps hour];
int min = [comps minute];
int sec = [comps second];
NSLog(@"week%d",week);
NSLog(@"year%d",year);
NSLog(@"month%d",month);
NSLog(@"day%d",day);
NSLog(@"hour%d",hour);
NSLog(@"min%d",min);
NSLog(@"sec%d",sec);

//得到毫秒
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
//[dateFormatter setDateFormat:@"hh:mm:ss"]
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
NSLog(@"Date%@", [dateFormatter stringFromDate:[NSDate date]]);
[dateFormatter release];

==========================================
方法一

NSDate* toDate1 = [ [ NSDate alloc] initWithString:@"2520-9-26 17:10:00 +0600" ];
NSTimeInterval distance = [ toDate1 timeIntervalSinceNow ];
NSTimeInterval iDat = distance / ( 86400 ) ;
NSLog( @" From now to %@ diff: %f ", [toDate1 description ], iDat );
[ toDate1 release ];

方法二
NSDate* toDate  = [ [ NSDate alloc] initWithString:@"2009-9-29 0:0:00 +0600" ];
NSDate* startDate = [ [ NSDate alloc] init ];
NSCalendar* chineseClendar = [ [ NSCalendar alloc ] initWithCalendarIdentifier:NSGregorianCalendar ];

NSUInteger unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit |
NSSecondCalendarUnit | NSDayCalendarUnit
| NSMonthCalendarUnit | NSYearCalendarUnit;

NSDateComponents *cps = [ chineseClendar components:unitFlags fromDate:startDate toDate:toDate options:0];
NSInteger diffHour = [ cps hour ];
NSInteger diffMin = [ cps minute ];
NSInteger diffSec = [ cps second ];
NSInteger diffDay = [ cps day ];
NSInteger diffMon = [ cps month ];
NSInteger diffYear = [ cps year ];
NSLog( @" From Now to %@, diff: Years: %d Months: %d, Days; %d, Hours: %d, Mins:%d, sec:%d",
[toDate description], diffYear, diffMon, diffDay, diffHour, diffMin,diffSec );
[ toDate release ];
[ startDate release ];
[ chineseClendar release ];

你可能感兴趣的:(iPhone开发--NSDate操作)