iOS 时间戳和时间相互转换

在项目中,时间戳和时间相互转换是很常见的事,废话不多说,直入正题。

先定义一个继承与NSObject的类,在.h文件中定义以下方法。

///时间戳转化为时间 (YYYY/MM/dd)

+ (NSString*)timestampToTimeWith:(NSTimeInterval)timeInterval;

///时间转为时间戳

+ (NSString*)timeToTimestamp:(NSString*)time;

在.m文件中实现.h中的方法

//时间转为时间戳

+ (NSString*)timeToTimestamp:(NSString*)time {

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

 [formattersetDateStyle:NSDateFormatterMediumStyle];

[formattersetTimeStyle:NSDateFormatterShortStyle];

 [formattersetDateFormat:@"YYYY/MM/dd"]; // ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制 设置时区,这个对于时间的处理有时很重要例如你在国内发布信息,用户在国外的另一个时区,你想让用户看到正确的发布时间就得注意时区设置,时间的换算.例如你发布的时间为2010-01-26 17:40:50,那么在英国爱尔兰那边用户看到的时间应该是多少呢? 他们与我们有7个小时的时差,所以他们那还没到这个时间呢...那就是把未来的事做了

   NSTimeZone* timeZone = [NSTimeZonetimeZoneWithName:@"Asia/Shanghai"];

    [formattersetTimeZone:timeZone];

 NSDate*datenow = [formatterdateFromString:time];

    // 时间转时间戳的方法:

 NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[datenow timeIntervalSince1970] * 1000];

//    NSLog(@"timeSp:%@",timeSp); //时间戳的值

 returntimeSp;

}


//时间戳转化为时间 (YYYY/MM/dd)

+ (NSString*)timestampToTimeWith:(NSTimeInterval)timeInterval {

    //将对象类型的时间转换为NSDate类型

    NSDate* myDate=[NSDatedateWithTimeIntervalSince1970:timeInterval /1000];

    //设置时间格式

    NSDateFormatter * formatter=[[NSDateFormatter alloc]init];

    [formattersetDateFormat:@"YYYY/MM/dd"];

    //将时间转换为字符串

    NSString*timeStr=[formatterstringFromDate:myDate];

    returntimeStr;

}

如有错误,请指出,共同改正。

你可能感兴趣的:(iOS 时间戳和时间相互转换)