【问题标题】:Convert time from utc to local time in android in long value在长值中将时间从 UTC 转换为 android 中的本地时间
【发布时间】:2015-04-27 03:49:12
【问题描述】:

我以 UTC+0000 格式从服务器接收时间(以秒为单位)。我已将该时间转换为毫秒。如何将这个长毫秒时间转换为我的默认时区时间格式(长本身)。我已经看到严格的帖子说使用 Joda-Time Library。我有任何方法可以用原生 java 方式来做这件事。我确实尝试过

    public static String toDuration(long duration) {
            long time_duration, temp_duration;
            Date now = new Date();
            temp_duration = duration * 1000L;
            int offset = TimeZone.getDefault().getRawOffset();
            Date date = new Date(temp_duration + offset);

            time_duration = now.getTime() - date.getTime();

            Log.d("Tag", "Now Time" + now.getTime());
            Log.d("Tag", "Date Time" + date.getTime());
            Log.d("Tag", "Long value is : " + time_duration); 
}

但这也给了我两次之间的负面差异。请大家帮忙。我已经坚持了很长时间。谢谢。

【问题讨论】:

  • 你试过我的答案了吗?
  • @Apurva 你的答案直接以字符串格式显示时间..我想要长值的形式。
  • 不是字符串,它将毫秒转换为date 格式。如果可以date 格式获得long 时间,为什么还要它?
  • @Apurva 因为我必须用另一个日期的长值减去那个长值..

标签: android timezone utc timezone-offset


【解决方案1】:

你把自己弄复杂了。服务器以毫秒为单位为您提供时间,Java 的日期以毫秒为单位 (http://docs.oracle.com/javase/7/docs/api/java/sql/Date.html#Date(long))

所以

Date time = new Date(duration)

将包含正确的服务器返回时间。自 1970 年 1 月 1 日以来以秒为单位的时间忽略时区,这就是我们喜欢它的原因。

如果您想输出特定时区,请使用 Android 的 DateFormat (http://developer.android.com/reference/java/text/DateFormat.html) 并相应地设置时区。

要查找时区,请尝试 TimeZone.getDefault() (http://developer.android.com/reference/java/util/TimeZone.html#getDefault())

【讨论】:

  • Date 的输入参数以毫秒为单位,而不是秒。
  • @waqaslam 我知道服务器通常会以毫秒为单位返回时间,但在我的情况下,我确实与我的网络服务开发人员进行了澄清,他说它以秒为单位......所以需要 * 1000L
  • @waqaslam 也..如果我直接使用日期而不将其转换为时区本地值..我在减去两个时间值时遇到负值..
  • @AndroidMech 您需要停止考虑时区。它们对于在几秒钟内返回的东西并不重要。您需要与您的 Web 服务开发人员验证他们返回的内容。如果他们在几秒钟内返回一个值,您需要知道这意味着什么。如果它意味着自 1970 年 1 月 1 日以来的秒数,那就太好了,乘以 1000 并将其设置在您的日期中。如果它们表示自 UTC+0000 午夜以来的秒数,那么您会遇到一些麻烦。因为你必须弄清楚格林威治的日期并向前推进。但是一旦你这样做了,你最终会得到一个自 1970 年以来以毫秒为单位的值。
猜你喜欢
  • 2019-09-06
  • 1970-01-01
  • 2019-03-04
  • 2020-01-11
  • 2018-07-27
  • 2012-02-29
  • 2014-07-18
  • 2021-02-04
  • 2010-09-15
相关资源
最近更新 更多