如何分别显示时间'just now' '1分钟前' '1小时前'

How to display time 'just now' '1 minute ago' '1 hour ago' respectively

我正在开发一款全球应用程序,其功能是我需要将 posted 时间分别显示为 'Just now'、“1 分钟前”、“1 小时前”。我在创建 post 时发送日期和时间并发送到 webservice.And 我为每个 post 检索相同的日期时间,我需要在每个 post 上显示相对时间(刚刚,分别为 1 小时,1 周)。我从网络服务中获取实际日期为
"created_date" = "2015-01-29 06:33:02"; 但是当我解析为 Nsdate 格式时 returns 日期为 “2015-01-29 01:03:02 +0000” 这是发送服务器的日期和时间代码。

 NSDateFormatter *DateFormatter=[[NSDateFormatter alloc] init];

[DateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSLog(@"DateFormatter%@",[DateFormatter stringFromDate:[NSDate date]]);

我使用以下代码将字符串格式化为日期。

 NSDateFormatter* dateFormatter = [[NSDateFormatter alloc]init];

 dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];

 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  NSDate *date = [dateFormatter dateFromString:[value valueForKey:@"created_date"]];
  NSLog(@"Output :%@",date);

如何找到 post 的实际经过时间 shared.I 我是 objective 的新手 C.I 我不确定我在做什么 wrong.Please 任何人帮我解决它。

看来这里有两个问题。

第一个是关于自然语言日期格式,我想您可能会发现 this 相关。

第二个问题您似乎对时区有些困惑。假设 GMT 没有任何偏移指示或 ICU 时区规范,NSDate 将解析您的日期。然后,当您将其打印出来时,很可能会使用您机器的当前语言环境来格式化输出日期。您应该阅读 NSDate 和 NSDateFormatter 对时区的处理。

将日期作为字符串发送到服务器时,应按如下格式设置:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

// Special, agnostic locale
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter setLocale:locale];

// GMT
NSTimeZone *timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
[dateFormatter setTimeZone:timeZone];

// ISO 8601
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];

NSLog(@"DateFormatter%@",[dateFormatter stringFromDate:[NSDate date]]);