时间操作
#pragma mark - 时间操作
- (void)test
{
//从当前时间开始,若干秒之后, 参数为秒
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:3600.0*10];
//方式一: 以某个时间为标准,加上若干秒后的时间
NSDate *date1 = [date dateByAddingTimeInterval:60];
//方式二: 以某个时间为标准,加上若干秒后的时间
NSDate *date2 = [NSDate dateWithTimeInterval:60 sinceDate:date];
// 从1970年开始,经过了若干秒的时间计算时间间隔
NSDate *date3 = [NSDate dateWithTimeIntervalSince1970:1000];
}
计算时间间隔
#pragma mark - 计算时间间隔
- (void)test1
{
NSDate *date1 = [NSDate date];
NSDate *date2 = [NSDate dateWithTimeInterval:60*60*5 sinceDate:[NSDate date]];
// 从1970年到某一年的秒数
NSTimeInterval interval = [date1 timeIntervalSince1970];
// 计算两个时间的间隔(秒)
NSTimeInterval interval1 = [date2 timeIntervalSinceDate:date1];
// 获取某一时间与当前时间的间隔
NSTimeInterval interval2 = [date2 timeIntervalSinceNow];
}
时间比较
#pragma mark - 时间比较
- (void)test2
{
NSDate *date1 = [NSDate date];
NSDate *date2 = [NSDate dateWithTimeInterval:60*60*5 sinceDate:[NSDate date]];
// 获取两个时间较晚的
NSDate *date = [date1 laterDate:date2];
// 获取两个时间较早的
NSData *date3 = [date1 earlierDate:date2];
}
字符串与时间之间的相互转换
#pragma mark - 字符串与时间之间的相互转换
- (void)test3
{
// 将时间转换成字符串
NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSString *dateStr = [formatter stringFromDate:date];
// 将字符串转换时间
NSDateFormatter *formatter1 = [[NSDateFormatter alloc]init];
[formatter1 setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];
[formatter1 setTimeZone:[NSTimeZone localTimeZone]];
NSString *str = @"2016年9月9日 11:11:11";
NSDate *date1 = [formatter1 dateFromString:str];
}
时区
#pragma mark - 时区
- (void)test4
{
NSString *str = @"2016年9月9日 09:09:09";
// 设置格式
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];
// 获取系统时区
NSTimeZone *zone = [NSTimeZone systemTimeZone];
// 设置时区
[formatter setTimeZone:zone];
// 获取系统时间区的格林时间差
NSInteger timeOff = [zone secondsFromGMT];
// 转换后的时间
NSDate *date1 = [formatter dateFromString:str];
// 转后的时间加上时间差
NSDate *date2 = [date1 dateByAddingTimeInterval:timeOff];
}
消除时间差
#pragma mark - 消除时间差
- (void)test5
{
NSString *str = @"2016年9月9日 09:09:09";
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];
NSDate *date = [formatter dateFromString:str];
// 方式一:
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSDate *date1 = [formatter dateFromString:str];
// 方式二:
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *date2 = [formatter dateFromString:str];
// 方式三:
NSInteger timeOff = [[NSTimeZone localTimeZone]secondsFromGMT];
NSDate *date3 = [date dateByAddingTimeInterval:timeOff];
}