一.NSDare初始化:
获取当前日期:NSDate *dare = [NSDate date];
此时 date 代表的就是当前时间,默认是时区格林治时间(0 时区时间)
2.常用api:
获取从某个日期开始之前或者往后多久的日期,
此处60代表晚60秒,如果需要获取之前的,将60改为-60即可
NSDate *date = [[NSDate alloc] initWithTimeInterval:60 sinceDate:[NSDate date]];
创建一个比 date 晚 5 秒钟的时间:
NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];
从 1970 开始走过的秒数:
NSTimeInterval seconds = [date2 timeIntervalSince1970];
当前时间跟 date2 相差多少秒:
[date2 timeIntervalSinceNow];
获取较早的日期
[[NSDate date] earlierDate:date]; [NSDate date] 比 date 早
//获取较晚的日期
- (NSDate *)laterDate:(NSDate *)anotherDate;
3.日期格式化:
日期格式化类用法:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
y年
M月
d日
m分
s秒
H (24)时
h(12)时
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *str = [formatter stringFromDate:date];
4.将本地日期字符串转为UTC日期字符串:
本地字符串
NSDate *date = [NSDate date];
NSDateFormatter *farmatter = [[NSDateFormatter alloc] init];
farmatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *str = [farmatter stringFromDate:date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
输入格式
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *dateFormatted = [dateFormatter dateFromString:str];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
//输出格式
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSString *dateString = [dateFormatter stringFromDate:dateFormatted];
NSLog(@"%@",dateString);
5.将UTC日期字符串转为本地时间字符串
2018-07-31T08:31:51+0000
-(NSString *)getLocalDateFormateUTCDate:(NSString *)utcDate
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//输入格式
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];
[dateFormatter setTimeZone:localTimeZone];
NSDate *dateFormatted = [dateFormatter dateFromString:utcDate];
//输出格式
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:dateFormatted];
return dateString;
}
6.获取当前年月日:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy/MM/dd"]; //日期格式
如果还想要获取时分秒,直接在这里指定时分秒的OPTIONS就行了.
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitWeekday;
NSDateComponents *component = [calendar components:unit fromDate:[NSDate date]];
获取年月日操作,时分秒也是这个api,只是调用属性不同而已.记得unit要加上时分秒的OPTIONS哦
NSInteger currentYear = component.year;
NSInteger currentMonth = component.month;
NSInteger currentDay = component.day;