NSDatePicker && NSDate

    UIDatePicker *datePicker = [[UIDatePicker alloc]init];

   datePicker.datePickerMode = UIDatePickerModeDate;

  datePicker.locale = [[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"];

      [datePicker addTarget:self action:@selector(datePicker:) forControlEvents:UIControlEventValueChanged];

[self.view addSubview:datePicker];

设置一个时间

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

[comps setMonth:01];

[comps setDay:00];

[comps setYear:1850];

NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];

NSDate *minDate = [calendar dateFromComponents:comps];

NSDate常用方法

NSDate类用于保存时间值,同时提供了一些方法来处理一些基于秒级别时差(Time Interval)运算和日期之间的早晚比较等。

 

1. 创建或初始化可用以下方法

    用于创建NSDate实例的类方法有

    + (id)date;

    返回当前时间

 

    + (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs;   

    返回以当前时间为基准,然后过了secs秒的时间

 

    + (id)dateWithTimeIntervalSinceReferenceDate:(NSTimeInterval)secs;

    返回以2001/01/01 GMT为基准,然后过了secs秒的时间

 

    + (id)dateWithTimeIntervalSince1970:(NSTimeInterval)secs;

    返回以1970/01/01 GMT为基准,然后过了secs秒的时间

 

    + (id)distantFuture;

    返回很多年以后的未来的某一天。

    比如你需要一个比现在(Now)晚(大)很长时间的时间值,则可以调用该方法。测试返回了4000/12/31 16:00:00

 

    + (id)distantPast;

    返回很多年以前的某一天。

    比如你需要一个比现在(Now)早(小)大很长时间的时间值,则可以调用该方法。测试返回了公元前0001/12/31 17:00:00

 

    用于创建NSDate实例的实例方法有

    - (id)addTimeInterval:(NSTimeInterval)secs;

    返回以目前的实例中保存的时间为基准,然后过了secs秒的时间

 

    用于初始化NSDate实例的实例方法有

    - (id)init;

    初始化为当前时间。类似date方法

 

    - (id)initWithTimeIntervalSinceReferenceDate:(NSTimeInterval)secs;

    初始化为以2001/01/01 GMT为基准,然后过了secs秒的时间。类似dateWithTimeIntervalSinceReferenceDate:方法

 

    - (id)initWithTimeInterval:(NSTimeInterval)secs sinceDate:(NSDate *)refDate;

    初始化为以refDate为基准,然后过了secs秒的时间

 

    - (id)initWithTimeIntervalSinceNow:(NSTimeInterval)secs;

    初始化为以当前时间为基准,然后过了secs秒的时间

 

 

2. 日期之间比较可用以下方法

    - (BOOL)isEqualToDate:(NSDate *)otherDate;

    与otherDate比较,相同返回YES

 

    - (NSDate *)earlierDate:(NSDate *)anotherDate;

    与anotherDate比较,返回较早的那个日期

 

    - (NSDate *)laterDate:(NSDate *)anotherDate;

    与anotherDate比较,返回较晚的那个日期

 

    - (NSComparisonResult)compare:(NSDate *)other;

    该方法用于排序时调用:

      . 当实例保存的日期值与anotherDate相同时返回NSOrderedSame

      . 当实例保存的日期值晚于anotherDate时返回NSOrderedDescending

      . 当实例保存的日期值早于anotherDate时返回NSOrderedAscending

 

 

3. 取回时间间隔可用以下方法

    - (NSTimeInterval)timeIntervalSinceDate:(NSDate *)refDate;

    以refDate为基准时间,返回实例保存的时间与refDate的时间间隔

 

    - (NSTimeInterval)timeIntervalSinceNow;

    以当前时间(Now)为基准时间,返回实例保存的时间与当前时间(Now)的时间间隔

 

    - (NSTimeInterval)timeIntervalSince1970;

    以1970/01/01 GMT为基准时间,返回实例保存的时间与1970/01/01 GMT的时间间隔

 

    - (NSTimeInterval)timeIntervalSinceReferenceDate;

    以2001/01/01 GMT为基准时间,返回实例保存的时间与2001/01/01 GMT的时间间隔

 

 

    + (NSTimeInterval)timeIntervalSinceReferenceDate;

    以2001/01/01 GMT为基准时间,返回当前时间(Now)与2001/01/01 GMT的时间间隔

 

 

4. 将时间表示成字符串

    - (NSString *)description;

    以YYYY-MM-DD HH:MM:SS ±HHMM的格式表示时间。

    其中 "±HHMM" 表示与GMT的存在多少小时多少分钟的时区差异。比如,若时区设置在北京,则 "±HHMM" 显示为 "+0800"

 

//得到当前的日期

 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];

时间: 2024-11-29 10:18:58

NSDatePicker && NSDate的相关文章

NSDatePicker的使用(设置日期范围)

设置日期期限的时候下面这个方法用不了(升级成ios7之后) NSDate *toDate =[[NSDate alloc]initWithString:@"2000-10-10 12:00:00 -0500"]; 用下面的方法替换 NSDateFormatter * formatter = [[NSDateFormatter alloc]init]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString

OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)

1.NSNumber 这个类主要是用来封装基本类型的,说到这里,就不得不说一下了: OC中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去,这个类似于Java中的自动装箱和拆箱,Java中的集合其实也是不允许存入基本类型的,但是我们任然看可以那么操作,就是因为有自动装箱功能,如果你将Eclipse的JDK改成5.0之前的,你看看还能操作吗.. 注:那为什么基本类型不能存入到集合中呢? 原因是在操作集合的时候会操作集合元素中的方法,但是基本类型是没有

003-日期与时间(NSDate)

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //获取代表当前日期,时间的NSDate NSDate* date1 = [NSDate date]; NSLog(@"%@", date1); //获取从当前时间开始,一天之后的日期 NSDate* date2 = [[NSDate alloc]initWithTimeInterval

NSDate ,NSCalendar一些用法

NSDate *date = [NSDate date]; [date dateByAddingTimeInterval: ]//通过加减秒数来改变date的值这里一般需要用到日期格式器NSFormatter类 NSFormatter *formatter = [NSFormatter alloc]init];[formatter setDateStyle: ]//设置系统时间格式[formatter setDateFormat:];//自定义时间格式(格式要规范)G: 公元时代,例如AD公元y

iOS开发-OC篇-NSDate

今天总结一下OC中NSDate的一些简单的用法,注意可不是NSData哦! NSDate的使用 1> NSDate初始化方法 //获取当前时间 NSDate * date = [NSDate date]; //返回以当前时间为基准,然后过了secs秒的时间 [NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24]; //返回以lastDate为基准,然后过了secs秒的时间 [NSDate dateWithTimeInterval:60 * 60 *

iOS开发中NSDate时间戳的转换--

NSTimeInterval time =(NSTimeInterval )[model.day floatValue]; NSDate *date = [NSDate dateWithTimeIntervalSince1970:time]; //转化为字符串 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"yyyy/MM/dd hh:mm"];

NSDate转NSString

NSDate *theDate = self.datePicker.date//假设从datepicker中获取到时间 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; self.label.text = [dateFormatter stringFromDate:theDate];

NSDate 和 NSDateFormatter 使用技巧

//1.显示当前时间 NSDate *date = [NSDate date];//获取当前的时间 NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; [formatter setDateFormat:@"yyyy-MM-dd a HH:mm:ss EEEE"]; NSLog(@"date = %@",[formatter stringFromDate:date]); //输出结果是  date =

supersr--时间显示逻辑--&gt;NSDate+NSCalendar

- (NSString *)created_at{ //    从后台返回的字符串格式:Mon Aug 03 09:17:31 +0800 2014, //NSDateFormatter可以把NSDate转成字符串,也可以把字符串转成NSDate //初始化一个时间格式化器 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; //指定时间格式化字符串-->是一个什么样的格式 formatter.dateFormat = @&quo