1.时间转字符串
NSDateFormatter **formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [NSDate date];
NSString *currentstr = [formatter stringFromDate:date];
2.时间字符串转时间
NSString *currentstr = @"2024-03-24";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *currentdate = [formatter dateFromString:currentstr];
3. 将某个时间转化成 时间戳
+ (NSInteger)timeSwitchTimestamp:(NSString *)formatTime andFormatter:(NSString *)format{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:format]; //(@"YYYY-MM-dd hh:mm:ss") ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setTimeZone:timeZone];
NSDate* date = [formatter dateFromString:formatTime]; //------------将字符串按formatter转成nsdate
//时间转时间戳的方法:
NSInteger timeSp = [[NSNumber numberWithDouble:[date timeIntervalSince1970]] integerValue];
return timeSp;
}
4. 将某个时间戳转化成 时间
+ (NSString *)timestampSwitchTime:(NSInteger)timestamp andFormatter:(NSString *)format{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:format]; // (@"YYYY-MM-dd hh:mm:ss")----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setTimeZone:timeZone];
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:timestamp];
NSString *confromTimespStr = [formatter stringFromDate:confromTimesp];
return confromTimespStr;
}
5. 获取当前时间戳
+ (NSString *)getNowTimeTimestamp{
NSDate *datenow = [NSDate date];//现在时间,你可以输出来看下是什么格式
NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[datenow timeIntervalSince1970]];
return timeSp;
}
6.两个时间比较大小
+(NSInteger)compareDate:(NSDate* )aDate withDate:(NSDate* )bDate
{
NSInteger tag = 0;
NSComparisonResult result = [aDate compare:bDate];
if(result == NSOrderedSame){
//相等
tag=0;
}else if (result == NSOrderedAscending){
//bDate比aDate大
tag = 1;
}else{
//bDate比aDate小
tag = -1;
}
return tag;
}
7. 给当前时间加几个小时几分钟
NSDate *datenow = [NSDate date];
// 要加上的小时数
NSInteger hoursToAdd = 5;
//要加上的分钟
NSInteger minToAdd = 20;
// 使用默认的日历获取组件
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond) fromDate:currentdate];
// 修改分钟数
components.minute += minToAdd;
// 修改小时数
components.hour += hoursToAdd;
// 重新组合成新的日期
NSDate *afterDate = [calendar dateFromComponents:components];