无法正确读取毫秒时间

问题描述 投票:0回答:1

所以我要从OpenWeatherMap api中提取数据,并且一切都很好,直到我返回内布拉斯加州奥马哈的日出和日落时间为止。香港专业教育学院看过这里的以前的帖子,并使用这些作为参考,例如使用TimeUnit类(在我的情况下仍然关闭)和使用Date / SimlpeDateFormatter的那些,但似乎它们几乎在同一时间输出。转换这些时间的方法对我来说似乎不错,但转换为时间的方法却并非如此。我应该使用某种方法来转换它们,还是我正在使用的当前方法做错了?

以毫秒为单位的获取时间的方法

public String getSunrise() {
    valueString = main.substring(main.indexOf("\"sunrise\"") + 10, main.indexOf("\"sunrise\"") + 20);
    System.out.println(valueString);
    Long rise = Long.parseLong(valueString);

    Date d = new Date(rise);
    SimpleDateFormat format = new SimpleDateFormat("h:mm a");
    format.setTimeZone(TimeZone.getTimeZone("CDT"));
    String t = format.format(d);

    return t;
}

public String getSunset() {
    valueString = main.substring(main.indexOf("\"sunset\"") + 9, main.indexOf("\"sunset\"") + 19);
    System.out.println(valueString);
    Long set = Long.parseLong(valueString);

    Date d = new Date(set);
    SimpleDateFormat format = new SimpleDateFormat("h:mm a");
    format.setTimeZone(TimeZone.getTimeZone("CDT"));
    String t = format.format(d);

    return t;
}

方法的控制台输出

1588504675
Sunrise: 9:15 AM
1588555387
Sunset: 9:15 AM

[从当前数据中提取,时间应为日出= 6:17 am,日落= 8:23 pm,取自以下链接:https://openweathermap.org/city/5074472main是完整的JSON字符串。

java api-design
1个回答
0
投票

占用时间的方法,以毫秒为单位:Open Weather Map API中的值以秒为单位,而不是毫秒。在您的问题中,1588504675是1970年。但是1588504675000是2020年5月3日(时间部分是UTC)。

© www.soinside.com 2019 - 2024. All rights reserved.