Я не нашел как это сделать в браузере SQLite. В текстовом файле разделитель является табуляция. Добавляю файл в браузер, но в таблицу записывается только первый элемент первого столбца, может кто сталкивался с таким?
Орхан Гасанлы, добрый вечер.
Благодаря Вашему совету про настройку TimeZone, сделал так :
public Calendar getDate() {
TimeZone tz = TimeZone.getTimeZone("UTC");
Calendar date = Calendar.getInstance(tz);
date.setTimeInMillis(timestamp * 1000);
return date;
}
Все отрабатывает корректно. Единственное что у меня не получается это загрузка списка городов, так как не хочется базу загружать - это увеличит "вес"
приложения, а онлайн не могу найти русскоязычные ресурсы.
Орхан Гасанлы, В результате мне нужно получить вот эту дату "dt": 1615161600, судя из этой информации Как распарсить дату OpenWeatherMap? , это время в секундах.
Значение dt = 1615215600 является временной отметкой 8 марта 2021 год 15:00 и записывается в переменную timestamp, потом я подставляю в написанный Вами код
public static void main(String[] args) {
long timestamp = 1615215600 ;
Calendar calendar = Calendar.getInstance();
// Ваш код:
calendar.setTimeInMillis(timestamp * 1000);
System.out.println(calendar.getTime());
// Мой код:
calendar.setTimeInMillis(timestamp);
System.out.println(calendar.getTime());
}
И получаю вот такой результат:
Mon Mar 08 17:00:00 EET 2021
Mon Jan 19 19:40:15 EET 1970
Орхан Гасанлы, Судя из вашей записи вы переводите из 1586468027 миллисекунд в секунды деля на 1000, правильно?
Т.е. у нас есть, например есть Т = 3 cек., чтобы превратить в миллисекунды надо
Т * 1000 = 3 * 1000 = 3000 миллисекунд. Значит, чтобы перевести секунды в миллисекунды нужно умножать на 1000
Дело в том, что на open weather map дата указывается как прошедшее время в секундах с 1 января 1970 года, если я не умножаю на 1000, то получается еще на 2 часа сдвиг. Может это связано с тем что я пытаюсь будущее время считывать?)
На этом ресурсе есть готовая база данных для каждой страны, состоящая из текстовых файлов, но в них полный хаос, не понятно как парсить. Как использовать данный онлайн ресурс чтобы напрямую получать список городов?
Орхан Гасанлы, спасибо, информация очень важная, обязательно учту. Но все оказалось проще. На виртуальном устройстве в настройках был установлен часовой пояс GTM-0, а у меня +2. Это и решило проблему.
Подскажите, как сделать пользовательский ввод названия города, а то у меня пока только в коде?
Спасибо большое за помощь. Есть еще один вопрос. Я вытаскиваю дату из запроса и форматирую в приложении вот таким образом:
DateFormat df = DateFormat.getDateTimeInstance();
String date = df.format(new Date(timestamp * 1000));
timestamp - это время в миллисекундах, полученное с openwethermap
У меня почему-то отображает время на 2 часа меньше. В чем может быть причина?
Да удалось, спасибо. Но появилась другая проблема. Выдает ошибку что программа пытается вызвать метод на null-ссылке и я не пойму почему
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.blackclover.testweatherforecast, PID: 18625
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Double.intValue()' on a null object reference
at com.example.blackclover.testweatherforecast.WeatherDay.getTempInteger(WeatherDay.java:55)
at com.example.blackclover.testweatherforecast.MainActivity$1.onResponse(MainActivity.java:61)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:71)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Спасибо за информацию)Я просто новичок во всем этом и все что мне удалось это сформировать запрос в InteliJ IDEA. Ответ был получен и выведен в консоль как надо. Но проблема в том, что в Android studio нет классов HttpRequest, HttpResponse и HttpClient, и судя из ошибок, то их туда нельзя добавить извне.
Посоветуйте как поступить в данной ситуации, потому что нужно писать именно в Android studio.
Спасибо большое, запустилось, только не все заработало. Страница запустилась, а от информация никакая не отображается. Я пробовал прогонять отладчиком, но не нашел в чем причина(то ли отладчиком не правильно пользовался ). У меня предположение, что нет ответа от Open Weather Map, я не пойму как посмотреть содержимое JSON. Есть варианты? Подскажите пожалуйста.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.