未正确读取毫秒时间



所以我从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,日落=8:23:https://openweathermap.org/city/5074472.main是完整的JSON字符串。

以毫秒为单位获取时间的方法:开放式天气图API中的值以秒为单位,而不是毫秒。在你的问题中,1588504675是在1970年。但1588504675000是2020年5月3日(时间部分是UTC(。

最新更新