Итак, я извлекаю данные из API OpenWeatherMap, и все шло хорошо, пока я не вернул время восхода и захода солнца для Омахи, штат Небраска. Я просмотрел предыдущие посты здесь и использовал их в качестве ссылки, например, один, использующий класс 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 и заходом солнца = 20:23 по этой ссылке: https://openweathermap.org/city/5074472. main
- это полная строка JSON.