如何将时间格式化为时间跨度?

时间:2013-05-17 13:30:08

标签: android time

我从json的facebook图表api得到了一段时间(“2013-05-17T06:47:48 + 0000”)现在我想将它转换为小时跨度。

例如,如果一个人在上述时间更新了他的状态,它将在2小时前向我们展示或类似的东西。

那我怎么把它转换到时间跨度?

需要帮助。

4 个答案:

答案 0 :(得分:1)

你可以试试这个:

try {
    long delta = System.currentTimeMillis() - new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse("2013-05-17T06:47:48+0200").getTime();
    String timeEllapsed = (delta / 3600000) + "h " + ((delta / 60000) % 60) + "min";
    System.out.println("Time ellapsed : " + timeEllapsed);
} catch (Exception e) {
    e.printStackTrace();
}

答案 1 :(得分:0)

首先,您应该知道从服务器收到UTC时间。您的用户遍布全球。所以你需要在设备上获得UTC时间。

要计算任何时间跨度,我建议您阅读此答案:Android time difference with joda time,它使用JodaTime库。

答案 2 :(得分:0)

<强>解决方案:

您可以使用可从here下载的JodaTime库。

示例:

我最近创建了一个小型演示应用程序并上传到我的GitHub帐户。

查看TimeStampDemo。它会根据您的问题提供输出。

我希望它会有所帮助!!

答案 3 :(得分:0)

DateUtil中有可用的方法,Banes谈到这些方法 here。在一些不起眼的语言中有一些错误(无法确定哪些),所以如果你正在本地化的话,Joda和Mehul建议可能会更好。