Преобразование даты в Java - PullRequest
       24

Преобразование даты в Java

2 голосов
/ 22 апреля 2010

Как мне взять строку в таком формате, как: 2008-06-02 00:00:00.0 и преобразовать ее в: 02-Jun-2008?

Могу ли я каким-то образом взять исходную строку, преобразовать ее в объект Date, а затем использовать средство форматирования для получения окончательного результата (вместо того, чтобы анализировать строку самостоятельно)? Спасибо!

Ответы [ 4 ]

7 голосов
/ 22 апреля 2010

Вы можете использовать SimpleDateFormat для преобразования между String и Date объектом и наоборот на основе шаблона. Нажмите на ссылку API, вы увидите подробное объяснение паттернов. Год из 4 цифр можно обозначить yyyy, аббревиатуру из 3 символов можно обозначить MMM и т. Д.

Сначала вам нужно проанализировать String первого формата в Date объекте:

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date = sdf1.parse(inputString);

Затем вам нужно отформатировать Date в String второго формата:

SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
String outputString = sdf2.format(date);

Обратите внимание, что вам также необходимо учитывать Locale, чтобы получить месяц для печати на английском языке, иначе для перевода месяца будет использоваться языковой стандарт по умолчанию для платформы.

0 голосов
/ 22 апреля 2010

Вы определенно можете использовать класс SimpleDateFormat, как рекомендовали другие.

Еще одно предложение, если оно применимо в вашем случае.Если вы получаете эти данные из SQL-запроса, вы также можете использовать метод to_char () для форматирования их в самом запросе.Например: to_char (имя-столбца, 'DD-MON-YYYY')

0 голосов
/ 22 апреля 2010
DateFormat startFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
DateFormat endFormat = new SimpleDateFormat("dd-MM-yyyy");
String outputString = null;
try {
    Date date = startFormat.parse(inputString);
    outputString = endFormat.format(date);
 } catch(ParseException pe) {
     throw new IllegalArgumentException(inputString + " is not properly formated.", pe);
 }
0 голосов
/ 22 апреля 2010

Используйте 2 экземпляра класса SimpleDateFormat. Один для преобразования входной строки в дату и второй для преобразования даты обратно в строку, но в другом формате.

Вот пример использования SimpleDateFormat .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...