Получение строки шаблона из Java SimpleDateFormat - PullRequest
26 голосов
/ 04 мая 2010

У меня есть объект SimpleDateFormat, который я извлекаю из некоторых утилит интернационализации. С парсингом дат все в порядке, но я бы хотел показать подсказку форматирования моим пользователям, например "MM / dd / yyyy". Есть ли способ получить шаблон форматирования из объекта SimpleDateFormat?

Ответы [ 4 ]

31 голосов
/ 04 мая 2010

SimpleDateFormat.toPattern()

Возвращает строку шаблона, описывающую этот формат даты.

6 голосов
/ 08 января 2012

Если вам просто нужно получить строку шаблона для данной локали, для меня сработало следующее:

/* Obtain the time format per current locale */

public String getTimeFormat(int longfmt) {
Locale loc = Locale.getDefault();
int jlfmt = 
    (longfmt == 1)?java.text.SimpleDateFormat.LONG:java.text.SimpleDateFormat.SHORT;
    SimpleDateFormat sdf = 
    (SimpleDateFormat)SimpleDateFormat.getTimeInstance(jlfmt, loc);
return sdf.toLocalizedPattern();
}

/* Obtain the date format per current locale */

public String getDateFormat(int longfmt) {
Locale loc = Locale.getDefault();
int jlfmt = 
    (longfmt == 1)?java.text.SimpleDateFormat.LONG:java.text.SimpleDateFormat.SHORT;
    SimpleDateFormat sdf = 
    (SimpleDateFormat)SimpleDateFormat.getDateInstance(jlfmt, loc);
return sdf.toLocalizedPattern();
}

getDateInstance и getTimeInstance для данной локали являются ключевыми здесь.

4 голосов
/ 04 мая 2010
import java.text.SimpleDateFormat;

public class Sdf {
    public static void main( String [] args ) {
        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
        String patternToUse = sdf.toPattern();
        System.out.println( patternToUse );
    }
}
4 голосов
/ 04 мая 2010

Используйте toPattern() или toLocalizedPattern() метод.

...