webentwicklung-frage-antwort-db.com.de

Wie konvertiert man Java string zum Date Objekt

Ich habe eine Schnur

String startDate = "06/27/2007";

jetzt muss ich ein Date Objekt bekommen. Mein DateObject sollte den gleichen Wert haben wie startDate.

Ich mache das so

DateFormat df = new SimpleDateFormat("mm/dd/yyyy");
Date startDate = df.parse(startDate);

Die Ausgabe erfolgt jedoch im Format

27. Januar, 00:06:00 PST 2007.

133
user755043

Grundsätzlich haben Sie Ihr Datum in einem Zeichenfolgenformat effektiv in ein Datumsobjekt konvertiert. Wenn Sie es zu diesem Zeitpunkt ausdrucken, erhalten Sie die Standardausgabe für die Datumsformatierung. Um es danach zu formatieren, müssen Sie es wieder in ein Datumsobjekt mit einem angegebenen Format (das bereits zuvor angegeben wurde) konvertieren.

String startDateString = "06/27/2007";
DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); 
Date startDate;
try {
    startDate = df.parse(startDateString);
    String newDateString = df.format(startDate);
    System.out.println(newDateString);
} catch (ParseException e) {
    e.printStackTrace();
}
182
citizen conn

"mm" bedeutet das "Minuten" -Fragment eines Datums. Verwenden Sie für den Teil "Monate" "MM".

Versuchen Sie also, den Code zu ändern:

DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); 
Date startDate = df.parse(startDateString);

Bearbeiten: Ein DateFormat-Objekt enthält eine Datumsformatierungsdefinition, kein Datumsobjekt, das nur das Datum enthält, ohne sich um die Formatierung zu kümmern. Bei der Formatierung geht es darum, eine Zeichenfolgendarstellung eines Datums in einem bestimmten Format zu erstellen. Siehe dieses Beispiel:

    import Java.text.DateFormat;
    import Java.text.SimpleDateFormat;
    import Java.util.Date;

    public class DateTest {

        public static void main(String[] args) throws Exception {
            String startDateString = "06/27/2007";

            // This object can interpret strings representing dates in the format MM/dd/yyyy
            DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); 

            // Convert from String to Date
            Date startDate = df.parse(startDateString);

            // Print the date, with the default formatting. 
            // Here, the important thing to note is that the parts of the date 
            // were correctly interpreted, such as day, month, year etc.
            System.out.println("Date, with the default formatting: " + startDate);

            // Once converted to a Date object, you can convert 
            // back to a String using any desired format.
            String startDateString1 = df.format(startDate);
            System.out.println("Date in format MM/dd/yyyy: " + startDateString1);

            // Converting to String again, using an alternative format
            DateFormat df2 = new SimpleDateFormat("dd/MM/yyyy"); 
            String startDateString2 = df2.format(startDate);
            System.out.println("Date in format dd/MM/yyyy: " + startDateString2);
        }
    }

Ausgabe:

Date, with the default formatting: Wed Jun 27 00:00:00 BRT 2007
Date in format MM/dd/yyyy: 06/27/2007
Date in format dd/MM/yyyy: 27/06/2007
20
sother
    try 
    {  
      String datestr="06/27/2007";
      DateFormat formatter; 
      Date date; 
      formatter = new SimpleDateFormat("MM/dd/yyyy");
      date = (Date)formatter.parse(datestr);  
    } 
    catch (Exception e)
    {}

monat ist MM, Minuten ist mm ..

9
mihsathe

Die prägnante Version:

String dateStr = "06/27/2007";
DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
Date startDate = (Date)formatter.parse(dateStr);  

Fügen Sie einen Try/Catch-Block für eine ParseException hinzu, um sicherzustellen, dass das Format ein gültiges Datum ist.

5
readikus