NSDate的使用及常用方法

本文介绍Objective-C中NSDate和NSDateFormatter类的使用方法,包括日期时间的创建、格式化、加减运算、转换为秒数及日期比较等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 常用时间格式
@"yyyy-MM-dd HH:mm:ss"
@"yy-MM-dd HH:mm"
@"yyyy-MM-dd HH:mm"
@"yyyy-MM-dd"
@"MM-dd HH:mm:ss"
@"MM-dd HH:mm"
@"HH:mm:ss"
@"HH:mm"
@"MM-dd"
@"yy-MM-dd"
@"yyyyMMdd"
@"yyyyMMddHHmmss"
@"yyyy-MM-dd HH:mm:ss.SSS"
@"yyyyMMddHHmmssSSS"
@"yyyy/MM/dd"
@"yyyy-MM"
@"yyyy.MM.dd"


// 创建方法
NSDate *date = [NSDate date];
NSLog(@"date %@", date);

// 格式化日期(格式是为了正常显示中国时区日期,否则默认显示美国时区的日期)
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss:SSS";
NSString *dateString = [formatter stringFromDate:date];
NSLog(@"dateString %@", dateString);

// 表示从1970年1月1日0时0分0秒,开始计算
NSTimeInterval time = 300;
NSDate *date2 = [[NSDate alloc] initWithTimeIntervalSince1970:time];
NSLog(@"date2 %@", date2);
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss:SSS";
dateString = [formatter stringFromDate:date2];
NSLog(@"dateString %@", dateString);

// 表示从当前时间开始计算,为"+"时表示未来某个时间,为"-"时表示过去的某个时间
// 方法1
time = 24 * 60 * 60;
NSDate *date3 = [[NSDate alloc] initWithTimeIntervalSinceNow:time];
NSLog(@"date3 %@", date3);
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss:SSS";
dateString = [formatter stringFromDate:date3];
NSLog(@"dateString %@", dateString);
// 方法2
NSDate *data4 = [date dateByAddingTimeInterval:time];
NSLog(@"data4 %@", data4);
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss:SSS";
dateString = [formatter stringFromDate:data4];
NSLog(@"dateString %@", dateString);
// 方法3
NSDate *date5 = [date addTimeInterval:5 * 60];
NSLog(@"date5 %@", date5);
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss:SSS";
dateString = [formatter stringFromDate:date5];
NSLog(@"dateString %@", dateString);

// 日期转换成秒数
NSTimeInterval second = [date timeIntervalSinceReferenceDate];
NSLog(@"second %f", second);

second = [date timeIntervalSince1970];
NSLog(@"second %f", second);

second = [date timeIntervalSinceNow];
NSLog(@"second %f", second);

// 日期比较
BOOL isEqual = [data4 isEqualToDate:date];
if (isEqual)
{
	NSLog(@"%@ 等于 %@", data4, date);
}
else
{
	NSLog(@"%@ 不等于 %@", data4, date);
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值