时间戳的处理。
格式转换如: 2016-8-8 9:48:56 ———-> 1470736188
h文件中暴露的接口有:
@interface DateManager : NSObject
/**把时间转为字符串*/
+ (NSString *)transDate:(NSDate *)date;
/**把时间戳转为格式时间 */
+ (NSString *)transDateStr:(NSString *)DateStr;
/**把格式时间转为时间戳*/
+ (NSString *)transFormateDate:(NSString *)formateDate;
@end
m文件中具体实现如下:
#import "DateManager.h"
@implementation DateManager
+ (NSString *)transDate:(NSDate *)date{
NSDateFormatter *formate = [[NSDateFormatter alloc]init];
[formate setDateFormat:@"YYYY-MM-hh HH:mm:ss"];
NSString * dateStr = [formate stringFromDate:date];
return dateStr;
}
/**把时间戳转为格式时间 */
+ (NSString *)transDateStr:(NSString *)DateStr{
NSString * formateDate = nil;//格式时间
NSTimeInterval time=[DateStr doubleValue];
NSDate*detaildate = [NSDate dateWithTimeIntervalSince1970:time];
//formateDate = [NSString stringWithFormat:@"%@",detaildate];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//设定时间格式 HH与hh的区别是:24小时制和12小时制
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
formateDate = [dateFormatter stringFromDate: detaildate];
return formateDate;
}
/**把格式时间转为时间戳*/
+ (NSString *)transFormateDate:(NSString *)formateDate{
NSString * DateStr = nil;//时间戳
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//设定时间格式
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *datenow =[dateFormatter dateFromString:formateDate];
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSInteger interval = [zone secondsFromGMTForDate:datenow];
NSDate *localeDate = [datenow dateByAddingTimeInterval: interval];
DateStr = [NSString stringWithFormat:@"%ld", (long)[localeDate timeIntervalSince1970]];
return DateStr;
}
@end
测试调用
- (void)viewDidLoad {
[super viewDidLoad];
//转时间戳为格式时间
NSLog(@"dateForm =%@",[DateManager transDateStr:@"1396035591"]);
//转格式时间为时间戳
NSDate *nowDate = [NSDate date];
// NSString * dateStr = [DateManager transDate:nowDate];
//与上注释的语句相同
NSDateFormatter *formate = [[NSDateFormatter alloc]init];
[formate setDateFormat:@"YYYY-MM-hh HH:mm:ss"];
NSString * dateStr = [formate stringFromDate:nowDate];
NSLog(@"%@=%@",dateStr,[DateManager transFormateDate:dateStr]);
}
打印结果
dateForm =2014-03-29 03:39:51
2016-08-10 10:03:31=1470823411