#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//获取代表当前日期,时间的NSDate
NSDate *date1 = [NSDate date];
NSLog(@"%@", date1);
//获取从当前时间开始,一天之后的日期
NSDate *date2 = [[NSDate alloc] initWithTimeIntervalSinceNow: 3600*24];
NSLog(@"%@", date2);
//获取从当前时间开始,3天之后的日期
NSDate *date3 = [[NSDate alloc] initWithTimeIntervalSinceNow: -3*3600*24];
NSLog(@"%@", date3);
//获取从1970年一月一日开始,20年之后的日期
NSDate *date4 = [NSDate dateWithTimeIntervalSince1970: 3600*24*366*20];
NSLog(@"%@", date4);
//获取当前系统的Locale
NSLocale *cn = [NSLocale currentLocale];
//获取NSDate在当前Locale下对应的字符串
NSLog(@"%@", [date1 descriptionWithLocale: cn]);
//获取两个日期之间较早的日期
NSDate *earlier = [date1 earlierDate: date2];
//获取两个日期之间较晚的日期
NSDate *later = [date1 laterDate: date2];
//比较两个日期,compare方法返回NSComparisonResult枚举值
//该枚举类型包含NSOrderedAscending,NSOrderedSame和NSOrderedDescending三个值
//分别代表调用compare:的日期位于被比较日期之前,相同,之后
switch([date1 compare: date3])
{
case NSOrderedAscending:
NSLog(@"date1位于date3之前");
break;
case NSOrderedSame:
NSLog(@"date1 与date3日期相等");
break;
case NSOrderedDescending:
NSLog(@"date1位于date3之后");
break;
}
//获取两个时间之间的时间差
NSLog(@"date1与date3之间时间差%g秒", [date1 timeIntervalSinceDate: date3]);
//获取指定时间与现在的时间差
NSLog(@"date2 与现在时间差%g秒", [date2 timeIntervalSinceNow]);
}
return 0;
NSLocale代表一个语言,国际环境,比如大陆的简体中文,就可通过NSLocale对象来代表,同样一个日期,在不同的语言,国家环境下,显示出来是不同的。
为了能分开处理NSDate对象所包含的各个字段的数据,Foundation框架提供了NSCalendar对象,
- NSCalendar -- 日历类,它提供了大部分的日期计算接口,并且允许您在NSDate和NSDateComponents之间转换
- NSTimeZone -- 时区信息
- NSLocale -- 本地化信息
- NSDate -- 表示一个绝对的时间点
- NSDateComponents -- 一个封装了具体年月日、时秒分、周、季度等的类
- NSDateFormatter -- 用来在日期和字符串之间转换