powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Интернационализация даты
12 сообщений из 12, страница 1 из 1
Интернационализация даты
    #39099820
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь получить сабж и никак - перерыл наверное весь гугл по жаве и ответа нет - все предлагают при получении строки с датой явно указывать формат вывода. А как сделать чтобы автоматом дата формировалась в том виде к какому привыкли пользователи локали? Н-р для русских DD MMM YYYY для немцев MMM DD YYYY для америкосов YYYY\MM\DD и т.д.

calendar.getTime() для русской локали выводит:
Tue Nov 10 13:06:00 GMT 2015
...
Рейтинг: 0 / 0
Интернационализация даты
    #39099840
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скаку сразу, вопросом особо не заморачивался, потому возможно не в курсе про более оптимальные решения
1) есть android.text.format.DateFormat.getBestDateTimePattern() - он только в последних апи есть, не помню с какой. если ограничение не устраивает, можешь покопать его код. Похоже он делает примерно то, что надо, но на сколько хорошо не могу сказать
2) храни формат в локализованных строках
de_DE/dateformats.xml -> <string name="shortDateFormat">dd.MM.yyyy</string>
en_US/dateformats.xml -> <string name="shortDateFormat">MM/dd/yyyy</string>
...
Рейтинг: 0 / 0
Интернационализация даты
    #39099925
Dim666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийПытаюсь получить сабж и никак - перерыл наверное весь гугл по жаве и ответа нет - все предлагают при получении строки с датой явно указывать формат вывода. А как сделать чтобы автоматом дата формировалась в том виде к какому привыкли пользователи локали? Н-р для русских DD MMM YYYY для немцев MMM DD YYYY для америкосов YYYY\MM\DD и т.д.

calendar.getTime() для русской локали выводит:
Tue Nov 10 13:06:00 GMT 2015Для даты можно вот так (выдаст "10 нояб. 2015г." или "10.11.2015" по идее):
Код: java
1.
2.
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.getDefault());
String date = dateFormat.format(new Date());
...
Рейтинг: 0 / 0
Интернационализация даты
    #39100253
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaскаку сразу, вопросом особо не заморачивался, потому возможно не в курсе про более оптимальные решения
1) есть android.text.format.DateFormat.getBestDateTimePattern() - он только в последних апи есть, не помню с какой. если ограничение не устраивает, можешь покопать его код. Похоже он делает примерно то, что надо, но на сколько хорошо не могу сказать
2) храни формат в локализованных строках
de_DE/dateformats.xml -> <string name="shortDateFormat">dd.MM.yyyy</string>
en_US/dateformats.xml -> <string name="shortDateFormat">MM/dd/yyyy</string>


1. Не подходит - у меня более ранние АПИ
2. Думал об этом - но тут тоже пальцем в небо - я не знаю н-р формат даты для новой зеландии.
...
Рейтинг: 0 / 0
Интернационализация даты
    #39100283
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim666DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.getDefault());
String date = dateFormat.format(new Date());


Спасибо огромное за подсказку !!! Вот так удалось получить то что хотел:

Код: java
1.
2.
 DateFormat dateFormat1 = DateFormat.getDateInstance(DateFormat.FULL, Locale.getDefault());
 String date1 = dateFormat1.format(new Date());



А можно ли как еще отдельно получить локальные названия дня недели и месяца или их надо для каждого языка переводить?
...
Рейтинг: 0 / 0
Интернационализация даты
    #39100293
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийА можно ли как еще отдельно получить локальные названия дня недели и месяца или их надо для каждого языка переводить?
http://developer.android.com/intl/ru/reference/java/text/DateFormatSymbols.html
...
Рейтинг: 0 / 0
Интернационализация даты
    #39100319
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Интернационализация даты
    #39100333
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийНашел вот здесь: http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/
Я по твоей ссылке не нашел ничего полезного касательно названий.
См. http://developer.android.com/intl/ru/reference/java/text/DateFormatSymbols.html#getWeekdays()
...
Рейтинг: 0 / 0
Интернационализация даты
    #39100403
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола ПитерскийНашел вот здесь: http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/
Я по твоей ссылке не нашел ничего полезного касательно названий.
См. http://developer.android.com/intl/ru/reference/java/text/DateFormatSymbols.html#getWeekdays()

Ну как же - я вот там выбрал все что мне нужно было:

Код: java
1.
2.
3.
4.
5.
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.getDefault());
DateFormat dateFormatFull = DateFormat.getDateInstance(DateFormat.FULL, Locale.getDefault());
SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm", Locale.getDefault());
SimpleDateFormat dayFormat= new SimpleDateFormat("EEEE", Locale.getDefault());
SimpleDateFormat monthFormat= new SimpleDateFormat("MMMM", Locale.getDefault());
...
Рейтинг: 0 / 0
Интернационализация даты
    #39100405
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийНу как же - я вот там выбрал все что мне нужно было:
Где там названия дней недели?
...
Рейтинг: 0 / 0
Интернационализация даты
    #39100547
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanГде там названия дней недели?

Так вот же:
Код: java
1.
2.
3.
Date date = new Date();
SimpleDateFormat dayFormat= new SimpleDateFormat("EEEE", Locale.getDefault());
String day = dayFormat.format(date);



выводит "среда"

Код: java
1.
SimpleDateFormat dayFormat= new SimpleDateFormat("EEE", Locale.getDefault());



выводит "ср"
...
Рейтинг: 0 / 0
Интернационализация даты
    #39100597
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийвыводит "среда"
Мда... "дня недели" и "текущего дня недели" - как-бы разный смысл.
Мыж тут программисты, а не абы как.

Хотя, да, я увидел нечто свое между строк.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Интернационализация даты
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]