Формат даты Java - PullRequest
       7

Формат даты Java

0 голосов
/ 04 августа 2010

У меня есть весеннее веб-приложение, которое работает в Tomcat.Я должен установить формат даты и номера для своего приложения в специальный формат.

Могу ли я установить формат в любом дескрипторе на специальный в моем приложении, или я могу установить только весь системный формат?


Я хочу использовать этот шаблон: yyyy.mm.dd.

Этот код неправильный, потому что это не стандартный шаблон локали:

String currentDate = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.UK).format(new Date());

Но я неЯ хочу, чтобы образец был везде в приложении, я хочу установить его один раз.

Я хочу, если я наберу этот код:

String currentDate = SimpleDateFormat.getDateInstance(DateFormat.SHORT).format(new Date());

Результат: 2010.08.04.

Возможно ли это?

Ответы [ 3 ]

1 голос
/ 04 августа 2010

java.util.Date объекты не имеют формата сами по себе (они представляют только значение даты и времени, так же как целые числа представляют только числовое значение и ничего не знают о форматировании чисел).

Тамне является общесистемной настройкой формата даты по умолчанию.Когда вы печатаете объект Date путем (неявного или явного) вызова на нем toString(), он будет напечатан с фиксированным форматом по умолчанию, который вы не сможете изменить:

System.out.println(new Date());
// Example output: Wed Aug 04 09:46:57 CEST 2010

Если вы хотитечтобы показать дату в определенном формате, используйте объект java.text.DateFormat для ее форматирования.Например:

DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
System.out.println(df.format(new Date()));
// Example output: 04-08-2010 09:48:47
0 голосов
/ 05 августа 2010

Поскольку вы говорите о том, чтобы что-то делать в рамках приложения, позвольте напомнить вам, что нужно быть осторожным с любым подклассом java.text.Format (включая DateFormat, SimpleDateFormat и т. Д.). Как отмечено в , форматы Javadoc , обычно не являются поточно-ориентированными . Я знаю из личного опыта, что DateFormats не.

Поэтому, если вы планируете настроить что-то для использования в вашем приложении, я рекомендую только определить формат String и поделиться им в приложении. Экземпляры класса Format лучше всего определены потокобезопасным способом, например, в стеке вызова метода.

0 голосов
/ 04 августа 2010

Вы можете абсолютно отформатировать дату любым способом, независимо от того, используете вы Spring или нет.Прежде всего, убедитесь, что вам действительно нужен «специальный формат», а не просто формат по умолчанию для определенной локали (например, deCH или svSE или enGB), потому что если вы просто хотите конвертировать дату в форматирование даты в вашей стране, вы можетепросто используйте

String currentDate = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.UK).format(new Date());

И если вам действительно нужно пользовательское форматирование, вы можете сделать это

String currentDateMyFormat = new SimpleDateFormat("dd:MMM:yy HH.mm").format(new Date());

Конечно, вы можете полностью изменить процесс (со строки на дату), заменив format with parse .

Надеюсь, это ответит на ваш вопрос, потому что, как и Сюй до меня, я не уверена, что полностью поняла ваш вопрос;

...