519 Stimmen

Datumsformat in einem Java-String ändern

Ich habe eine String ein Datum darstellt.

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

Ich würde es gerne in eine Date und geben sie in YYYY-MM-DD Format.

2011-01-18

Wie kann ich das erreichen?


Okay, auf der Grundlage der Antworten, die ich unten gefunden habe, habe ich folgendes ausprobiert:

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));

Aber sie gibt aus 02011-00-1 statt der gewünschten 2011-01-18 . Was mache ich falsch?

7voto

Neeraj Gahlawat Punkte 1213
public class SystemDateTest {

    String stringDate;

    public static void main(String[] args) {
        SystemDateTest systemDateTest = new SystemDateTest();
        // format date into String
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
        systemDateTest.setStringDate(simpleDateFormat.format(systemDateTest.getDate()));
        System.out.println(systemDateTest.getStringDate());
    }

    public Date getDate() {
        return new Date();
    }

    public String getStringDate() {
        return stringDate;
    }

    public void setStringDate(String stringDate) {
        this.stringDate = stringDate;
    }
}

6voto

Ran Adler Punkte 3315

Sie könnten versuchen Java 8 neu date Weitere Informationen finden Sie auf der Website Oracle-Dokumentation .

Oder Sie können die alte Version ausprobieren

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);
}

6voto

Eren Punkte 216
   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));

5voto

Martin Punkte 446

Sie können auch substring() verwenden

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

Wenn Sie ein Leerzeichen vor das Datum setzen wollen, verwenden Sie

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

4voto

Pankaj Sharma Punkte 1795

Entfernen Sie ein y aus dem Format provide to:

SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd");

So sollte es sein:

SimpleDateFormat dt1 = new SimpleDateFormat("yyyy-mm-dd");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X