我从 API
接收聊天数据,它返回消息的日期如下:
30 minutes ago
1 hour ago
2 weeks ago
... etc
但是在 JSQMessage 中它只需要 NSDate
,我搜索并没有找到一种动态的方法来将它转换为没有特定格式的 NSDate
JSQMessage* message = [[JSQMessage alloc] initWithSenderId:@"3" senderDisplayName:@"Name" date:@"" text:@"msg"];
任何帮助将不胜感激。
最佳答案
最好改变API响应。或者,您可以使用以下功能。
-(void)getLocationDetails:(NSString *)strDiffFrmAPI{
NSDate *dateActual;
if ([strDiffFrmAPI isEqualToString:@"30 minutes ago"]) {
dateActual = [[NSCalendar currentCalendar] dateByAddingUnit:NSCalendarUnitMinute
value:-30
toDate:[NSDate date]
options:0];
}
else if ([strDiffFrmAPI isEqualToString:@"1 hour ago"]){
dateActual = [[NSCalendar currentCalendar] dateByAddingUnit:NSCalendarUnitHour
value:-1
toDate:[NSDate date]
options:0];
}
else if ([strDiffFrmAPI isEqualToString:@"2 weeks ago"]){
dateActual = [[NSCalendar currentCalendar] dateByAddingUnit:NSCalendarUnitDay
value:(-7*2)
toDate:[NSDate date]
options:0];
}
}
我认为这不是一个好的方法。最好从 API 获取 Date 的时间戳值。
关于ios - JSQMessage 从未格式化的字符串设置日期属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42268295/