0

当我调用 youtube API 时,它会返回以下时间戳:

2012-11-13T18:38:30Z

我需要根据当前时间和上述时间戳计算“时间前”。因此,使用上面的时间戳和当前时间,我应该得到 6 天前等信息。

我需要在 android 中转换它,所以任何 android 或 java 答案都可以提供帮助。

似乎有一个计算时间的函数,但您需要先将 2012-11-13T18:38:30Z 转换为毫秒或秒,或其他

我的问题是,在 java 中,你如何将 2012-11-13T18:38:30Z 转换为其他可以给我几秒钟、几天或其他时间的东西。

4

4 回答 4

0

使用 SimpleDateFormat 类创建 Date 对象,然后 getTime() 以毫秒为单位获取它。

试试谷歌,你会得到很多例子。

于 2012-11-15T02:31:52.397 回答
0

你的意思是从日期到长的转换?

这可能会有所帮助

http://www.roseindia.net/java/java-conversion/DateToLong.shtml

于 2012-11-15T02:33:24.813 回答
0

您不能将其转换为毫秒,它仅指定为second

于 2012-11-15T03:33:32.337 回答
0

使用此模式解析您的时间戳。

yyyy-MM-dd'T'HH:mm:ssZ

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
java.util.Date parsedTimeStamp = format.parse("2012-11-13T18:38:30Z");
long videoTime = parsedTimeStamp.getTime();

我已经告诉过你第一部分,不幸的是,我的时间很短,所以接下来的步骤你自己来做:(我稍后会添加代码。) videoTime会给你以毫秒为单位的视频时间。您可以使用 long systemTime = System.currentTimeMillis()/1000. 将这两者相减,并将减法的结果转换为差值。

Calender c1 = Calender.getInstanec().setTime(new Date(videoTime));
Calender c2 = Calender.getInstanec().setTime(new Date(systemTime));

使用此日期创建两个日历,并使用日历方法,您会发现日期之间的日期和月份之间的差异。

于 2012-11-15T08:27:28.967 回答