当工作需要为用户提供选择不同格式日期的功能,为同事写一个转换日期格式的CustomTimeLabel··· 虽然很简单,但是还是想写在博客里,以备不时之需~
继承于UILable的CustomTimeLabel
一个实例方法
- (void)setLabelWithText:(NSString *)text inputFormat:(NSString *)inputFormat outputFormat:(NSString *)outputFormat
{
if ([inputFormat isEqualToString:@"timeStemp"]) {
NSTimeInterval time = [text doubleValue];
if (text.length == 13) {
time = [text doubleValue] / 1000;
}
NSDate *detailDate = [NSDate dateWithTimeIntervalSince1970:time];
//实例化一个NSDateFormatter对象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:outputFormat];
NSString *dateStr = [dateFormatter stringFromDate:detailDate];
self.text = dateStr;
}
else
{
NSDateFormatter *informat = [[NSDateFormatter alloc]init];
[informat setDateFormat:inputFormat];
NSDate *date = [informat dateFromString:text];
NSDateFormatter *outformat = [[NSDateFormatter alloc]init];
[outformat setDateFormat:outputFormat];
self.text = [outformat stringFromDate:date];
}
}
其中inputFormat是变化之前的格式
“timeStemp”是时间戳格式的时间,
“yyyy-MM-dd”是普通时间格式。
outputFormat是变化之后的格式
使用:
CustomTimeLabel *label = [[CustomTimeLabel alloc]initWithFrame:CGRectMake(0, 100, kScreenW, 20)];
[label setLabelWithText:@"14708980" inputFormat:@"timeStemp" outputFormat:@"yyyy-MM-dd HH:mm:ss"];
[self.view addSubview:label];
CustomTimeLabel *label1 = [[CustomTimeLabel alloc]initWithFrame:CGRectMake(0, 200, kScreenW, 20)];
[label1 setLabelWithText:@"20160305" inputFormat:@"yyyyMMdd" outputFormat:@"yyyy年MM月"];
[self.view addSubview:label1];