解析unix,UTC android

Nur*_*bek 2 java parsing android json utc

我有如下图所示的 JSON,我在我的 android 应用程序中使用了它。我在解析 unix, UTC 格式的日出和日落时遇到问题。我的问题是如何只显示本地小时和分钟

在此处输入图片说明

这就是我试图日出但它是错误的: sunrise.setText(json.getJSONObject("sys").getString("sunrise"));

谢谢你的帮助!

Gre*_*eek 5

我相信你有几个问题。

第一个是如何将 Unix 时间戳转换为 Java 日期。

与 Unix 时间戳一样,Java 日期在内部存储为距特定时刻的长偏移量,称为“纪元”。幸运的是,它们都使用相同的纪元。但是,Unix 时间戳具有更高的分辨率。

要从 Unix 时间戳获得代表 Java 日期的 long,您需要将其乘以 1000。然后您可以使用结果来初始化 Java 日期。这里最重要的是确保您的时间戳是长整数,而不是整数(或双精度数,或任何其他数字类型)。

所以,本质上:

  long unixTimestamp = 1427607706;
  long javaTimestamp = unixTimestamp * 1000L;
  Date date = new Date(javaTimestamp);
Run Code Online (Sandbox Code Playgroud)

接下来,您需要从 Json 中获取数值,作为 long 而不是 String,因此使用 getLong 而不是 getString。

最后,您需要格式化日期。由于您只需要小时和分钟,您可以使用:

String sunrise = new SimpleDateFormat("hh:mm").format(date);
Run Code Online (Sandbox Code Playgroud)

然后使用该值来设置 TextView 的值。