zoukankan      html  css  js  c++  java
  • 时间与日期。

    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应用。

  • 相关阅读:
    java Activiti 工作流引擎 SSM 框架模块设计方案
    自定义表单 Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    数据库设计的十个最佳实践
    activiti 汉化 stencilset.json 文件内容
    JAVA oa 办公系统模块 设计方案
    java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端
    集成 nacos注册中心配置使用
    “感恩节 ”怼记
    仓颉编程语言的一点期望
    关于System.out.println()与System.out.print("\n")的区别
  • 原文地址:https://www.cnblogs.com/guanliyang/p/3914708.html
Copyright © 2011-2022 走看看