所以我要从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/5074472。 main
是完整的JSON字符串。
占用时间的方法,以毫秒为单位:Open Weather Map API中的值以秒为单位,而不是毫秒。在您的问题中,1588504675
是1970年。但是1588504675000
是2020年5月3日(时间部分是UTC)。