在项目中,时间戳和时间相互转换是很常见的事,废话不多说,直入正题。
先定义一个继承与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;
}
如有错误,请指出,共同改正。