解析 unix,UTC android

Parse unix, UTC android

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

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

感谢您的帮助!

我相信你有几个问题。

首先是如何将 Unix 时间戳转换为 Java 日期。

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

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

所以,本质上:

  long unixTimestamp = 1427607706;
  long javaTimestamp = unixTimestamp * 1000L;
  Date date = new Date(javaTimestamp);

接下来,您需要从 Json 中获取数值,而不是字符串,因此请使用 getLong 而不是 getString。

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

String sunrise = new SimpleDateFormat("hh:mm").format(date);

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