Я разрабатываю одно приложение GPS. Который отправит данные о местоположении на сервер на каждый час.
В этом я использую следующий код:
location.getLatitude();
location.getLongitude();
location.getTime();
с этим кодом я получаю Локатор и Долгота правильно и Время также, но я получаю приблизительно 13 цифр вместо времени. Я провел некоторое исследование по этому вопросу, я обнаружил, что это секунды для текущего времени.
так что теперь мне нужно преобразовать это 13-значное число в конкретный формат.
Location#getTime()
возвращает "время UTC этого исправления в миллисекундах с 1 января 1970 года."
Это точно такое же поведение, как java.util.Date#getTime()
. Я не понимаю, что вы хотели бы сделать с данными времени, но если вы хотите преобразовать время Location
в java.util.Date
, вы можете сделать это следующим образом:
long time = location.getTime();
Date date = new Date(time);
Теперь с ним немного легче работать. Если вы хотите создать определенный выходной формат строки этой даты, используйте SimpleDateFormat
:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String text = sdf.format(date);
System.out.println(text); // prints something like 2011-01-08 13:35:48
Тем не менее, если все, что вы хотели бы сделать, это получить текущее время (что похоже на то, что вы пытаетесь сделать), вам вообще не нужен Location
:
Date now = new Date();
Что это!
Помогает ли это? Если нет, не могли бы вы уточнить, что вы пытаетесь сделать?
Date date = new Date(location.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String myDate= sdf.format(date);
System.out.println(myDate)
String timestamp = parseDate(location.getTime().toDate());
public String parseDate(Date date){
String format = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.US);
return sdf.format(date).toString();
}