美文网首页小知识点
iOS时间戳与日期转换

iOS时间戳与日期转换

作者: 豌豆大师 | 来源:发表于2018-11-21 15:36 被阅读15次

1、通常我们通过时间戳的方式跟后台进行时间格式上的统一;
2、有时我们会纠结于获取到的时间有8小时时差;
3、时间戳与日期的互相转换
基于以上三个原因,固对这一系列的转换做了一下总结,可以直接复制项目中进行使用。

//建立一个NSDate的类别  .h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface NSDate (commonuse)

//日期格式化
+(NSDateFormatter *)dateFormatWith:(NSString *)formatStr;

//获取当前时间戳
+(NSString *)getNowTimestamp;

//将时间转换为时间戳
+ (NSString *)dateToTimestamp:(NSDate *)date;

//将时间转换为时间字符串
+ (NSString *)dateToTimeStr:(NSDate *)date;

//将时间戳转换为时间
+ (NSDate *)timestampToDate:(CGFloat)timestamp;

//将时间字符串转换为时间戳
+ (NSString *)timeStrToTimestamp:(NSString *)timeStr;

//将时间字符串转换为时间
+ (NSDate *)timeStrToDate:(NSString *)timeStr;

//将时间戳转换为时间字符串
+ (NSString *)timestampToTimeStr:(CGFloat)timestamp;



@end

//.m
#import "NSDate+commonuse.h"

@implementation NSDate (commonuse)

//获取日期格式化器
+(NSDateFormatter *)dateFormatWith:(NSString *)formatStr {
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    [formatter setDateFormat:formatStr];//@"YYYY-MM-dd HH:mm:ss"
    //设置时区
    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
    [formatter setTimeZone:timeZone];
    
    return formatter;
}
//获取当前时间戳
+(NSString *)getNowTimestamp {
    
    NSDate *date = [NSDate dateWithTimeIntervalSinceNow:0];
    
    return [self dateToTimestamp:date];
}

//将时间转换为时间戳
+ (NSString *)dateToTimestamp:(NSDate *)date {
    
    NSTimeInterval stamp = [date timeIntervalSince1970];
    
    return [NSString stringWithFormat:@"%.0f", stamp];
}

//将时间转换为时间字符串
+ (NSString *)dateToTimeStr:(NSDate *)date {
    
    NSString *timeStr = [[self dateFormatWith:@"YYYY-MM-dd HH:mm:ss"] stringFromDate:date];
    
    return timeStr;
}

//将时间字符串转换为时间戳
+ (NSString *)timeStrToTimestamp:(NSString *)timeStr {
    
    NSDate *date = [self timeStrToDate:timeStr];
    NSTimeInterval stamp = [date timeIntervalSince1970];
    
    return [NSString stringWithFormat:@"%.0f", stamp];
}

//将时间字符串转换为时间
+ (NSDate *)timeStrToDate:(NSString *)timeStr {
    
    NSDate *date = [[self dateFormatWith:@"YYYY-MM-dd HH:mm:ss"] dateFromString:timeStr];
    
    //解决8小时时差问题
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    NSInteger interval = [zone secondsFromGMTForDate: date];
    NSDate *localeDate = [date dateByAddingTimeInterval: interval];
    
    return localeDate;
}

//将时间戳转换为时间字符串
+ (NSString *)timestampToTimeStr:(CGFloat)timestamp {
    
    NSDate *date=[NSDate dateWithTimeIntervalSince1970:timestamp];
    NSString *timeStr=[[self dateFormatWith:@"YYYY-MM-dd HH:mm:ss"] stringFromDate:date];
    
    return timeStr;
}

//将时间戳转换为时间
+ (NSDate *)timestampToDate:(CGFloat)timestamp {
    NSDate *date=[NSDate dateWithTimeIntervalSince1970:timestamp];
    
    //解决8小时时差问题
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    NSInteger interval = [zone secondsFromGMTForDate: date];
    NSDate *localeDate = [date dateByAddingTimeInterval: interval];
    
    
    return localeDate;
}



@end

相关文章

  • 获取时间,时间与时间戳之间的转换

    一、JS获取当前时间,时间与时间戳之间的转换 获取当前时间 时间与时间戳之间的转换 将时间戳转换成日期格式 将日期...

  • [JS]时间戳与日期之间的转换

    获取本地时间戳 时间戳转换为日期 日期转换为时间戳 时间戳与日期转换封装 重写

  • iOS 时间戳、时间转换

    参考文档1:iOS时间类型转换和各种数据类型进行转换 参考文档2:iOS开发中的时间与日期(上) 转换工具:时间戳...

  • 时间整合

    PHP时间戳和日期相互转换在php中我们要把时间戳转换日期可以直接使用date函数来实现,如果要把日期转换成时间戳...

  • iOS时间戳与日期转换

    1、通常我们通过时间戳的方式跟后台进行时间格式上的统一;2、有时我们会纠结于获取到的时间有8小时时差;3、时间戳与...

  • Unix时间戳与日期格式的相互转化

    1. 将时间戳转换成日期格式 2. 将日期格式转换为时间戳

  • Java8 新特性(三) - 日期时间对象以及一些其他特性

    日期时间对象 关于日期时间的操作可以分为两种: 转换:与字符串的互相转换,与时间戳的互相转换 计算:计算两个时间点...

  • date

    A.将日期转换为Unix时间戳 将当前时间以Unix时间戳表示: 转换指定日期为Unix时间戳: B.将Unix时...

  • MySQL日期常用函数

    1.UNIX时间戳转换为日期 FROM_UNIXTIME() 2.日期转换为UNIX时间戳 UNIX_TIMEST...

  • mysql日期和时间戳的转换

    FROM_UNIXTIME(将时间戳转换为日期) UNIX_TIMESTAMP(将日期转换为时间戳) 比如 sel...

网友评论

    本文标题:iOS时间戳与日期转换

    本文链接:https://www.haomeiwen.com/subject/sejcqqtx.html