Foundation Framework 日期 NSDate

来源:互联网 发布:金融数据分析师 编辑:程序博客网 时间:2024/05/07 15:11

NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间。


1、获取当前时间

NSDate * dt = [NSDate date];//获取的时间date减去24小时的时间(昨天的这个时候)  NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-(24*60*60)];


2、将 NSDate 与 NSString 之间的转换

使用 NSDateFormatter 可以很方便的将 NSDate 与 NSString 进行格式转换

NSDateFormatter *form= [[NSDateFormatter alloc] init];[form setDateFormat:@"H:mm"];// 设置日期的输出格式NSString *text = [form stringFromDate:dateObject];  // 格式化 NSDate 到字符串NSDate *date=[form dateFromString:@"11:00"];    // 将字符串转换成 NSData


格式化表达式

G: 公元时代,例如AD公元
yy: 年的后2位
yyyy: 完整年
MM: 月,显示为1-12
MMM: 月,显示为英文月份简写,如 Jan
MMMM: 月,显示为英文月份全称,如 Janualy
dd: 日,2位数表示,如02
d: 日,1-2位显示,如 2
EEE:  简写星期几,如Sun
EEEE: 全写星期几,如Sunday
aa: 上下午,AM/PM
H: 时,24小时制,0-23
K: 时,12小时制,0-11
m: 分,1-2位
mm: 分,2位
s: 秒,1-2位
ss: 秒,2位
S: 毫秒


例如:

G yyyy/MM/dd(EEE) K:mm:ss  格式化后为:AD 2010/11/25(Thu) 00:55:15


3、获取时间间隔多少秒

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

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

NSTimeInterval 并不是对象,是 double 类型,是由c定义的:  typedef double NSTimeInterval;
将间隔的秒数折算成天、小时、分钟、秒数的代码:

int days = ((int)time)/(3600*24);int hours = ((int)time)%(3600*24)/3600;int minutes = ((int)time)%(3600*24)%3600/60;int seconds = ((int)time)%(3600*24)%3600%60;NSString *dateContent = NSString stringWithFormat:@"%i小时%i分钟",hours,minutes];

4、日期之间的比较

- (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



0 0
原创粉丝点击