• 时间与日期。


    1,创建时间。

            NSDate *todaysDate = [NSDate date];

            NSLog(@"Today's date is %@", todaysDate);

    后面的+0000很讨厌。

    2,由组建创建时间段,比如年月日,十分秒。

    timeZoneWithAbbreviation设置时区。

    具体代码

            NSDateComponents *dateComponents = [[NSDateComponents alloc] init];

            dateComponents.year = 2007;

            dateComponents.month = 6;

            dateComponents.day = 29;

            dateComponents.hour = 12;

            dateComponents.minute = 01;

            dateComponents.second = 31;

            dateComponents.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];

            

            NSDate *iPhoneReleaseDate = [[NSCalendar currentCalendar] dateFromComponents:dateComponents];

            

     

            NSLog(@"The original iPhone went on sale: %@", iPhoneReleaseDate);

     

    3,比较两个时区。

    比如看看是不是今天。

            NSDate *todaysDate = [NSDate date];

            if([todaysDate isEqualToDate:iPhoneReleaseDate])

                NSLog(@"The iPhone was released today!");

            else

     

                NSLog(@"The iPhone was released on some other date”);

    早一天或晚一天。

    NSDate *earlierDateIs = [todaysDate earlierDate:iPhoneReleaseDate];

     

    NSDate *laterDateIs = [todaysDate laterDate:iPhoneReleaseDate];

    日历

    NSCalendar *systemCalendar = [NSCalendar currentCalendar];

     

    unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |

            NSDayCalendarUnit;

    具体代码

            NSDateComponents *dateComponents = [[NSDateComponents alloc] init];

            dateComponents.year = 2007;

            dateComponents.month = 6;

            dateComponents.day = 29;

            dateComponents.hour = 12;

            dateComponents.minute = 01;

            dateComponents.second = 31;

            dateComponents.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"PDT"];

            NSDate *iPhoneReleaseDate = [[NSCalendar currentCalendar] dateFromComponents:dateComponents];

            NSLog(@"The original iPhone went on sale: %@", iPhoneReleaseDate);

            NSDate *todaysDate = [NSDate date];

            NSLog(@"Today's date is: %@", todaysDate);

            if([todaysDate isEqualToDate:iPhoneReleaseDate])

                NSLog(@"The iPhone was released today!");

            else

                NSLog(@"The iPhone was released on some other date");

            NSDate *earlierDateIs = [todaysDate earlierDate:iPhoneReleaseDate];

            NSLog(@"The earlier date is: %@", earlierDateIs);

            NSDate *laterDateIs = [todaysDate laterDate:iPhoneReleaseDate];

            NSLog(@"The later date is: %@", laterDateIs);

            NSTimeInterval timeBetweenDates = [todaysDate timeIntervalSinceDate:iPhoneReleaseDate];

            NSLog(@"The iPhone was released %f seconds ago", timeBetweenDates);

            NSCalendar *systemCalendar = [NSCalendar currentCalendar];

            unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit| NSDayCalendarUnit;

            NSDateComponents *dateComparisonComponents = [systemCalendar components:unitFlags

                                                                            fromDate:iPhoneReleaseDate toDate:todaysDate

                                                                             options:NSWrapCalendarComponents];

            NSLog(@"The iPhone was released %ld years, %ld months and %ld days ago",

                  dateComparisonComponents.year,

                  dateComparisonComponents.month,

                  dateComparisonComponents.day

                  );

    你可以比较出差多少十分秒,年月日等。

    4,字符串转换成日期。

           NSString *dateString = @"02/14/2012";

     

            NSDateFormatter *df = [[NSDateFormatter alloc] init];

     

            df.dateFormat = @"MM/dd/yyyy";

     

            NSDate *valentinesDay = [df dateFromString:dateString];

     

            NSLog(@"Valentine's Day = %@", valentinesDay);

    dateFromString:dateString就行了。

    5,

    按一定格式格式化日期。

            NSString *dateString = @"02/14/2012";

     

            NSDateFormatter *df = [[NSDateFormatter alloc] init];

     

            df.dateFormat = @"MM/dd/yyyy";

     

            NSDate *valentinesDay = [df dateFromString:dateString];

     

            NSLog(@"Unformatted Valentine's Day = %@", valentinesDay);

     

            NSLog(@"Formatted Valentine's Day = %@", [df stringFromDate:valentinesDay]);

     

            df.dateFormat = @"EEEE, MMMM d";

     

            NSLog(@"Another Formatted Valentine's Day = %@", [df stringFromDate:valentinesDay]);

    6,加减日期。

    代码,

            NSString *dateString = @"02/14/2012";

     

            NSDateFormatter *df = [[NSDateFormatter alloc] init];

     

            df.dateFormat = @"MM/dd/yyyy";

     

            NSDate *valentinesDay = [df dateFromString:dateString];

     

            NSLog(@"Valentine's Day = %@", valentinesDay);

     

            NSDateComponents *weekBeforeDateComponents = [[NSDateComponents alloc] init];

     

            weekBeforeDateComponents.week = -1;

     

            NSDate *vDayShoppingDay = [[NSCalendar currentCalendar] dateByAddingComponents:weekBeforeDateComponents

     

                                                                                     toDate:valentinesDay

     

                                                                                    options:0];

     

            NSLog(@"Shop for Valentine's Day by %@", vDayShoppingDay);

    由于日期是对象,操作日期的相关属性即可,

    7,使用定时器安排或重复任务。就是你想要一段代码在特定时期执行。

    先弄一个日期对象

    NSDate *scheduledTime = [NSDate dateWithTimeIntervalSinceNow:10.0];

    创建计时器。

            NSString *customUserObject = @"To demo userInfo";

     

            NSTimer *timer = [[NSTimer alloc] initWithFireDate:scheduledTime

                                                      interval:2

                                                        target:self

                                                      selector:@selector(task)

                                                      userInfo:customUserObject

                                                       repeats:YES];

     

    循环运行,添加时间。

    NSRunLoop *runLoop = [NSRunLoop currentRunLoop];

    [runLoop addTimer:timer forMode:NSDefaultRunLoopMode];

    具体代码

     

    #import "AppDelegate.h"

    @implementation AppDelegate

    @synthesize window = _window;

    - (void)applicationDidFinishLaunching:(NSNotification *)aNotification{

    NSDate *scheduledTime = [NSDate dateWithTimeIntervalSinceNow:10.0];

        NSString *customUserObject = @"To demo userInfo";

     NSTimer *timer = [[NSTimer alloc] initWithFireDate:scheduledTime

                                                  interval:2

                                                    target:self

                                                  selector:@selector(task:)

                                                  userInfo:customUserObject

                                                   repeats:YES];

     

        NSRunLoop *runLoop = [NSRunLoop currentRunLoop];

        [runLoop addTimer:timer

                  forMode:NSDefaultRunLoopMode];

    }

     

    -(void)task:(id)sender{

        NSTimer *localTimer = (NSTimer *)sender;

        NSLog(@"Schedule task has executed with this user info: %@", [localTimer userInfo]);

    }

    @end

     

    自己建立,是mac应用,不是IOS应用。

  • 相关阅读:
    第四次作业的完善
    第四次作业
    第三次附加作业
    采用mybatis-plus并且在controller方法上加@Transactional,一共经过了多少层动态代理
    mybatis事务不起作用,原来表引擎是MyISAM
    从docker registry拉取所需secret的namespace要与容器一样
    kubecfg.p12要记住密码,并且要导入到个人区
    Four Types of Books
    函数式编程与响应式编程
    类的【TypeVariable】和变量的【ParameterizedType】
  • 原文地址:https://www.cnblogs.com/guanliyang/p/3914708.html
Copyright © 2020-2023  润新知