Формат координат геолокации в Android

127
28 сентября 2019, 13:20
private String formatLocation(Location location) {
    if (location == null)
        return "";
    return String.format(
            "Coordinates: lat = \n%1$.6f\n, lon = \n%2$.6f\n, time = \n%3$tF %3$tT",
            location.getLatitude(), location.getLongitude(), new Date(
                    location.getTime()));
}

НО:

Если язык телефона стоит русский - приходят координаты в стиле "53,66678" (запятая)

А на англ.языке телефона "53.66678" (точка)

В приложении еще происходит работа с координатами и этот элемент (точка/запятая) один из ключевых.

Как привести данные геолокации к одному виду независимо от языка устройства?

Answer 1

Попробуйте так:

return String.format(
            Locale.US,
            "Coordinates: lat = \n%1$.6f\n, lon = \n%2$.6f\n, time = \n%3$tF %3$tT",
            location.getLatitude(), location.getLongitude(), new Date(
                    location.getTime()));

либо так:

Locale locale = new Locale("en_US");
return String.format(
            locale,
            "Coordinates: lat = \n%1$.6f\n, lon = \n%2$.6f\n, time = \n%3$tF %3$tT",
            location.getLatitude(), location.getLongitude(), new Date(
                    location.getTime()));
READ ALSO
Использование RandomAccessFile, кодировки

Использование RandomAccessFile, кодировки

При чтении байтов из файла с использовании RandomAccessFile нормально выводится в консоль только латиницаЧтоб выводилась нормально кирилица необходимо...

138
Что такое double brace инициализация?

Что такое double brace инициализация?

Что означает синтаксис {{ }}(две двойных фигурных скобки) в Java?

143
Gradle sync failed, implementations

Gradle sync failed, implementations

Не понимаю в чём проблема"Gradle sync failed"

108
Аналог static class (C#) на Java

Аналог static class (C#) на Java

Нагуглил несколько статей: в одной говорится, что синглтон идеален для хранения глобальных переменныхВ другой - что он (синглтон) таки может...

126