Изменить формат даты в строке Java - PullRequest
446 голосов
/ 23 января 2011

У меня есть String, представляющая дату.

String date_s = "2011-01-18 00:00:00.0";

Я хотел бы преобразовать ее в Date и вывести в формате YYYY-MM-DD.

2011-01-18

Как мне этого добиться?


Хорошо, основываясь на ответах, которые я получил ниже, вот что я попробовал:

String date_s = " 2011-01-18 00:00:00.0"; 
SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss"); 
Date date = dt.parse(date_s); 
SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd");
System.out.println(dt1.format(date));

Но он выдает 02011-00-1 вместо желаемого 2011-01-18.Что я делаю не так?

Ответы [ 17 ]

6 голосов
/ 26 мая 2012
   String str = "2000-12-12";
   Date dt = null;
   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

    try 
    {
         dt = formatter.parse(str);
    }
    catch (Exception e)
    {
    }

    JOptionPane.showMessageDialog(null, formatter.format(dt));
5 голосов
/ 26 мая 2014

Вы можете просто использовать:

Date yourDate = new Date();

SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
String date = DATE_FORMAT.format(yourDate);

Работает отлично!

5 голосов
/ 12 октября 2013

Вы также можете использовать substring ()

String date_s = "2011-01-18 00:00:00.0";
date_s.substring(0,10);

Если вы хотите поставить пробел перед датой, используйте

String date_s = " 2011-01-18 00:00:00.0";
date_s.substring(1,11);
4 голосов
/ 30 июля 2013
private SimpleDateFormat dataFormat = new SimpleDateFormat("dd/MM/yyyy");

@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    if(value instanceof Date) {
        value = dataFormat.format(value);
    }
    return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
};
3 голосов
/ 27 августа 2014

Вы можете попробовать java 8 new date, более подробную информацию можно найти в документации oracle .

Или вы можете попробовать старый

public static Date getDateFromString(String format, String dateStr) {

        DateFormat formatter = new SimpleDateFormat(format);
        Date date = null;
        try {
            date = (Date) formatter.parse(dateStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return date;
    }

    public static String getDate(Date date, String dateFormat) {
        DateFormat formatter = new SimpleDateFormat(dateFormat);
        return formatter.format(date);
    }
3 голосов
/ 23 сентября 2013

удалить одну форму y SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd"); должно быть SimpleDateFormat dt1 = new SimpleDateFormat("yyyy-mm-dd");

0 голосов
/ 03 июля 2019

SimpleDateFormat dt1 = новый SimpleDateFormat ("гггг-мм-дд");

...