1、NSDate
时间与日期的初始化,主要有
[NSDate date];
2、NSDateFormatter
主要用于NSString和Date之间相互转化
//NSDate转NSString stringFromDate:dt //NSString转NSDate dateFromString
3、NSCalendar和NSDateComponents
Date打印出具体时间的年月日和把年月日转化为Date
4、NSTimer
定时器
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo; + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo; + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo; + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
5、测试Demo
main.m文件
int main(int argc, char * argv[]) { @autoreleasepool { //NSDate常用方法 NSDate *date = [NSDate date]; NSLog(@"%@", date); NSDate *date1 = [[NSDate alloc] initWithTimeIntervalSinceNow:3600 * 24]; NSLog(@"date1 is %@", date1); NSDate *date2 = [[NSDate alloc] initWithTimeIntervalSinceNow:-3 * 3600 * 24]; NSLog(@"date1 is %@", date2); NSLocale *cn = [NSLocale currentLocale]; NSLog(@"%@", [date1 descriptionWithLocale:cn]); NSLog(@"%@", [date1 earlierDate:date2]); //NSDate转NSString NSDate *dt = [NSDate dateWithTimeIntervalSince1970:3600 * 24 * 366 * 20]; NSDate *dt1 = [NSDate dateWithTimeIntervalSince1970:0]; NSLog(@"%@", dt1); NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"公元yyyy年MM月DD日 HH时mm分"]; NSLog(@"%@", [df stringFromDate:dt]); //NSString转NSDate NSString *str = @"2018-03-02"; NSDateFormatter *df1 = [[NSDateFormatter alloc] init]; [df1 setDateFormat:@"yyyy-MM-dd"]; NSLog(@"%@", [df1 dateFromString:str]); //NSCalendar和NSDateComponents使用 NSCalendar *car = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDate *date3 = [NSDate date]; unsigned unit = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit; NSDateComponents *comp = [car components:unit fromDate:date3]; NSLog(@"现在是%ld年", comp.year); NSLog(@"现在是%ld月", comp.month); NSLog(@"现在是%ld日", comp.day); NSLog(@"现在是%ld时", comp.hour); NSLog(@"现在是%ld分", comp.minute); NSLog(@"现在是%ld秒", comp.second); NSLog(@"现在是星期%ld", comp.weekday); NSDateComponents *comp1 = [[NSDateComponents alloc] init]; comp1.year = 2015; comp1.month = 4; comp1.day = 5; comp1.hour = 18; comp1.minute = 34; NSDate *date4 = [car dateFromComponents:comp1]; NSLog(@"date is %@:", date4); return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }
ViewControl.m文件(这里实现的定时器)
@implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Control *control = [Control new]; // control.delegate = self; // [control willShowAlert]; NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(Timered:) userInfo:nil repeats:YES]; } - (void)Timered:(NSTimer*)timer { NSLog(@"hello chenyu"); } @end
6、运行的结果
2018-07-12 23:03:31.634870+0800 cyTest[37918:6787840] hello chenyu 2018-07-12 23:03:32.634915+0800 cyTest[37918:6787840] hello chenyu 2018-07-12 23:03:33.634881+0800 cyTest[37918:6787840] hello chenyu 2018-07-12 23:03:34.634938+0800 cyTest[37918:6787840] hello chenyu 2018-07-12 23:03:35.634998+0800 cyTest[37918:6787840] hello chenyu 2018-07-12 23:03:36.635095+0800 cyTest[37918:6787840] hello chenyu 2018-07-12 23:03:37.635086+0800 cyTest[37918:6787840] hello chenyu 2018-07-12 23:14:23.789640+0800 cyTest[38218:6796894] Thu Jul 12 23:14:23 2018 2018-07-12 23:14:23.790844+0800 cyTest[38218:6796894] date1 is Fri Jul 13 23:14:23 2018 2018-07-12 23:14:23.791492+0800 cyTest[38218:6796894] date1 is Mon Jul 9 23:14:23 2018 2018-07-12 23:14:23.804598+0800 cyTest[38218:6796894] Friday, July 13, 2018 at 11:14:23 PM China Standard Time 2018-07-12 23:14:23.804853+0800 cyTest[38218:6796894] Mon Jul 9 23:14:23 2018 2018-07-12 23:14:23.805346+0800 cyTest[38218:6796894] Thu Jan 1 08:00:00 1970 2018-07-12 23:14:23.805927+0800 cyTest[38218:6796894] 公元1990年01月16日 08时00分 2018-07-12 23:14:23.808330+0800 cyTest[38218:6796894] Fri Mar 2 00:00:00 2018 2018-07-12 23:14:23.808982+0800 cyTest[38218:6796894] 现在是2018年 2018-07-12 23:14:23.809150+0800 cyTest[38218:6796894] 现在是7月 2018-07-12 23:14:23.809354+0800 cyTest[38218:6796894] 现在是12日 2018-07-12 23:14:23.809558+0800 cyTest[38218:6796894] 现在是23时 2018-07-12 23:14:23.809684+0800 cyTest[38218:6796894] 现在是14分 2018-07-12 23:14:23.809834+0800 cyTest[38218:6796894] 现在是23秒 2018-07-12 23:14:23.810407+0800 cyTest[38218:6796894] 现在是星期5 2018-07-12 23:14:23.811211+0800 cyTest[38218:6796894] date is Sun Apr 5 18:34:00 2015: 2018-07-12 23:14:27.764633+0800 cyTest[38218:6796894] hello chenyu 2018-07-12 23:14:28.764758+0800 cyTest[38218:6796894] hello chenyu 2018-07-12 23:14:29.765776+0800 cyTest[38218:6796894] hello chenyu 2018-07-12 23:14:30.765792+0800 cyTest[38218:6796894] hello chenyu 2018-07-12 23:14:31.765426+0800 cyTest[38218:6796894] hello chenyu