Страницы

Поиск по вопросам

понедельник, 24 февраля 2020 г.

Получение даты через String.format()

#java #android


Есть код  для Android,цель выводить имя месяца:

    day_of_month = (TextView)findViewById(R.id.day_of_month);
    day_of_week = (TextView)findViewById(R.id.day_of_week);
    String month_s = String.format("%1$tB",new Date());
    String day_s = String.format("%1$tA",new Date());
    month.setText(month_s);
    day_of_week.setText(day_s);


Все хорошо,кроме падежа месяца:он выводиться как Марта,Февраля,Сентября и т.д,то
есть в родительном падеже.Как вывести в именительном:Март,Февраль,Сентябрь?

Благодаря ответу код приобрёл такой вид:

SimpleDateFormat format = new SimpleDateFormat("yyyy;LLLL;dd;EEEE");
    String date_string = String.format("%s",format.format(new Date()));
    String[] date_array = date_string.split(";");
    year.setText(date_array[0]);
    month.setText(date_array[1]);
    day_of_month.setText(","+date_array[2]);
    day_of_week.setText(date_array[3]);

    


Ответы

Ответ 1



По-моему, через String.format - никак. С API 9 можно воспользоваться SimpleDateFormat с параметром "L" (stand-alone month): SimpleDateFormat format = new SimpleDateFormat( "LLLL" ); System.out.printf( "sdf: %s%n", format.format( new Date() ) ); // sdf: Март Аналогичный параметр для дня недели - "c", хотя для русского языка это не важно.

Комментариев нет:

Отправить комментарий