Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
200
Добавлен:
17.04.2018
Размер:
229 Кб
Скачать
☆

ИП. ИJ. РC. Объект Locale

МИЭТ, 2017

В Java существуют пресозданные объекты Locale:

Locale.US

Locale.GERMANY

Locale.CHINESE

Locale.TRADITIONAL_CHINESE

Local.UK

И т.д.

ИП. ИJ. РC. Числа

МИЭТ, 2017

Формат вывода чисел

Для форматирования числа необходимо:

Получить объект регионального стандарта

Получить объект форматирования

Применить объект форматирования для форматирования числа или его разбора

ИП. ИJ. РC. Числа

МИЭТ, 2017

Форматирование числа

Для форматирования чисел используется класс java.text.NumberFormat.

Locale locale = new Locale("de", "DE");

NumberFormat currFormat =

NumberFormat.getInstance(locale); double amount = 123456.78;

System.out.println(currFormat.format(currFormat));

Результат:

123,456.78

ИП. ИJ. РC. Деньги

МИЭТ, 2017

Форматирование денежных единиц

Locale locale = new Locale("de", "DE");

NumberFormat currFormat = NumberFormat.getCurrencyInstance(locale);

double amount = 123456.78;

System.out.println(currFormat.format(currFormat));

Результат: 123,456.78 €

И!П. ИJ. РC. Преобразования

МИЭТ, 2017

Преобразование строки в число

TextField input;

. . .

NumberFormat fmt = NumberFormat.getNumberInstance();

Number input = fmt.parse(input.getText().trim()); double x = input.doubleValue();

В случае ошибки преобразование генерируется исключение ParseException

И!П. ИJ. РC. Преобразования

МИЭТ, 2017

Класс NumberFormat

static NumberFormat getCurrencyInstance(Locale inLocale)

static NumberFormat getInstance(Locale inLocale)

static NumberFormat getIntegerInstance(Locale inLocale)

static NumberFormat getNumberInstance(Locale inLocale)

static NumberFormat getPercentInstance(Locale inLocale)

String format(double number)

String format(long number)

ИП. ИJ. РC. Преобразования

МИЭТ, 2017

Денежные единицы

Не решение проблемы:

NumberFormat dollarFormatter = NumberFormat.getNumberInstance(Locale.US);

NumberFormat euroFormatter = NumberFormat.getNumberInstance(Locale.GERMANY);

Так как вывод 100 000 будет: $100,000.00 100.000,00€

ИП. ИJ. РC. Преобразования

МИЭТ, 2017

Денежные единицы

NumberFormat euroFormatter = NumberFormat.getNumberInstance();

euroFormatter.setCurrency(Currency.getInstance("EUR"));

NumberFormat dollarFormatter =

NumberFormat.getNumberInstance();

dollarFormatter.setCurrency(Currency.getInstance("USD"));

Коды валют (ISO-4217):

USD — доллар США

EUR — евро

GBP — Английский Фунт

RUB — Российский рубль

ИП. ИJ. РC. Дата и время

МИЭТ, 2017

Дата и время

Особенности форматирования даты и времени:

Названия месяцев должны быть представлены на местном языке

Последовательность указания год-месяц-день различаются

Для отображения дат может быть использован не григорианский календарь

Следует учитывать часовые пояса

ИП. ИJ. РC. Дата и время. Форматирование

МИЭТ, 2017

Форматирование даты и времени

DateFormat fmt = DateFormat.getDateInstance(dateStyle, locale);

DateFormat fmt = DateFormat.getTimeInstance(timeStyle, locale);

DateFormat fmt = DateFormat.getDateTimeInstance(dateStyle, timeStyle, locale);

Значения timeStyle:

DateFormat.DEFAULT

DateFormat.FULL (Friday, April 4, 2008 10:30:00 am PDT) DateFormat.LONG (April 4, 2008 10:30:00 pm PDT) DateFormat.MEDIUM (Apr 4, 2008 10:30:00 pm) DateFormat.SHORT (4/3/08 10:30:00pm)

Соседние файлы в папке Интернет технологии