OC时间与时间戳相互转换

使用示例:
时间字符串转时间戳
NSDate *date = [self timeChangeDateWithTimeStr:@"2021-12-29 10:40:40"];
NSString *timestamp = [self dateTotimestamp:date];
NSLog(@"时间戳%@",timestamp); //1640745640.000000
时间戳转时间字符串
NSDate *temdate = [self timestampToDate:timestamp];
NSString *timestr = [self dateTotime:temdate];
NSLog(@"时间str%@",timestr); //2021-12-29 10:40:40

初始化dateFormatter
注意:
1、如果是毫秒改为"yyyy-MM-dd HH:mm:ss.SSS"
2、YYYY 是按照周来计算时间,如果是2021-12-29会计算为2022-12-29;yyyy是按照天来计算的,是我们常用的计算方式

- (NSDateFormatter *)getformatter{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Shanghai"]];
    return formatter;
}

时间戳字符串转NSDate

- (NSDate *)timestampToDate:(NSString *)timeStamp {
    NSString *arg = timeStamp;
    if (![timeStamp isKindOfClass:[NSString class]]) {
        arg = [NSString stringWithFormat:@"%@", timeStamp];
    }
    NSTimeInterval time = [arg doubleValue];
    return [NSDate dateWithTimeIntervalSince1970:time];
}

NSDate转时间戳字符串

- (NSString *)dateTotimestamp:(NSDate *)date{
    NSTimeInterval stamp = [date timeIntervalSince1970];
    return [NSString stringWithFormat:@"%lf",stamp];
}

NSString转NSDate

- (NSDate *)timeChangeDateWithTimeStr:(NSString *)timeStr{
    NSDateFormatter *formatter = [self getformatter];
    NSDate *date = [formatter dateFromString:timeStr];
    return date;
}

NSDate转NSString

- (NSString *)dateTotime:(NSDate *)date{
    NSDateFormatter *formatter = [self getformatter];
    NSString *dateString = [formatter stringFromDate:date];
    NSLog(@"dateStr=%@",dateString);
    return dateString;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容