【问题标题】:android java convert timestamp 2012-11-13T18:38:30Z to time agoandroid java 将时间戳 2012-11-13T18:38:30Z 转换为时间前
【发布时间】:2012-11-15 02:24:19
【问题描述】:

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

2012-11-13T18:38:30Z

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

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

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

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

【问题讨论】:

  • 你的问题不是很清楚。你能改写一下吗?转换为秒是什么意思?请花一些时间来编辑并使问题清晰。谢谢。
  • 我刚刚做了,如果你清楚请告诉我

标签: java android timestamp


【解决方案1】:

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

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));

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

【讨论】:

  • 谢谢..但是 java.util.Date parsedTimeStamp = format.parse("2012-11-13T18:38:30Z");抛出异常,说它是不可解析的日期
  • 我刚刚搜了一下,之前已经回答过了。看一看:stackoverflow.com/questions/2201925/…
【解决方案2】:

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

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

【讨论】:

  • 不,我的意思是把这个字符串“2012-11-13T18:38:30Z”转换成任何东西,只要我能提取毫秒
【解决方案3】:

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

这可能会有所帮助

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

【讨论】:

  • 不,这个例子没有帮助,我已经搜索了一段时间,它们都不起作用,我正在将此特定字符串 2012-11-13T18:38:30Z 转换为任何值只要因为我可以提取毫秒值
【解决方案4】:

您不能将其转换为 毫秒,它只能指定为 秒。

【讨论】:

    猜你喜欢
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多