我有一个格式化日期字符串的方法。我遇到了一个问题,它仅返回我传递给它的第一个NSString的格式化版本。
代码:
self.lastUpdatedLabel.text = [self convertTime:lastupdated];
self.expiryDate.text = [self convertTime:expiryDate];
方法
- (NSString *)convertTime:(NSString *)date{
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
[timeFormatter setDateFormat:@"HH:mm - dd/MM/yyyy"];
[timeFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
date = [timeFormatter stringFromDate:[[NSDate alloc]init] ];
return date;
}
lastUpdatedLabel和到期日期都设置为expiryDate的值。该方法肯定会在每次调用时运行,因为输入不同,因此会产生不同的输出
答案 0 :(得分:0)
您似乎需要更新代码以使用参数date
。
正如人们在评论中提到的那样,您使用的是当前时间[[NSDate alloc] init]
,而不是传入的date
。
如果lastUpdated
和expiryDate
是NSDate,那么它将起作用。
- (NSString *)convertTime:(NSDate *)date{
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
[timeFormatter setDateFormat:@"HH:mm - dd/MM/yyyy"];
[timeFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
return [timeFormatter stringFromDate:date];
}
如果lastUpdated
和expiryDate
是NSStrings,看起来就像是,那么您需要使用NSDateFormatter来将NSStrings转换为NSDates,该NSDateFormatter可以理解您拥有的NSString的格式...,然后将该NSDate传递给上面的代码,以创建格式正确的字符串作为输出。