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?

4voto

user2632575 Punkte 41
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);
};

1voto

Kamta Mishra Punkte 45

Wir können das Datum von heute in das folgende Format konvertieren JUN 12, 2020 .

String.valueOf(DateFormat.getDateInstance().format(new Date())));

1voto

Rajneesh Shukla Punkte 739
/**
 * Method will take Date in "MMMM, dd yyyy HH:mm:s" format and return time difference like added: 3 min ago
 *
 * @param date : date in "MMMM, dd yyyy HH:mm:s" format
 * @return : time difference
 */
private String getDurationTimeStamp(String date) {
    String timeDifference = "";

    //date formatter as per the coder need
    SimpleDateFormat sdf = new SimpleDateFormat("MMMM, dd yyyy HH:mm:s");
    TimeZone timeZone = TimeZone.getTimeZone("EST");
    sdf.setTimeZone(timeZone);
    Date startDate = null;
    try {
        startDate = sdf.parse(date);
    } catch (ParseException e) {
        MyLog.printStack(e);
    }

    //end date will be the current system time to calculate the lapse time difference
    Date endDate = new Date();

    //get the time difference in milliseconds
    long duration = endDate.getTime() - startDate.getTime();

    long diffInSeconds = TimeUnit.MILLISECONDS.toSeconds(duration);
    long diffInMinutes = TimeUnit.MILLISECONDS.toMinutes(duration);
    long diffInHours = TimeUnit.MILLISECONDS.toHours(duration);
    long diffInDays = TimeUnit.MILLISECONDS.toDays(duration);

    if (diffInDays >= 365) {
        int year = (int) (diffInDays / 365);
        timeDifference = year + mContext.getString(R.string.year_ago);
    } else if (diffInDays >= 30) {
        int month = (int) (diffInDays / 30);
        timeDifference = month + mContext.getString(R.string.month_ago);
    }
    //if days are not enough to create year then get the days
    else if (diffInDays >= 1) {
        timeDifference = diffInDays + mContext.getString(R.string.day_ago);
    }
    //if days value<1 then get the hours
    else if (diffInHours >= 1) {
        timeDifference = diffInHours + mContext.getString(R.string.hour_ago);
    }
    //if hours value<1 then get the minutes
    else if (diffInMinutes >= 1) {
        timeDifference = diffInMinutes + mContext.getString(R.string.min_ago);
    }
    //if minutes value<1 then get the seconds
    else if (diffInSeconds >= 1) {
        timeDifference = diffInSeconds + mContext.getString(R.string.sec_ago);
    } else if (timeDifference.isEmpty()) {
        timeDifference = mContext.getString(R.string.now);
    }

    return mContext.getString(R.string.added) + " " + timeDifference;
}

0voto

pavel Punkte 1379

Angenommen, Sie möchten 2019-12-20 10:50 AM GMT+6:00 in 2019-12-20 10:50 AM ändern Zunächst einmal müssen Sie das Datumsformat verstehen: Das erste Datumsformat ist yyyy-MM-dd hh:mm a zzz und das zweite Datumsformat ist yyyy-MM-dd hh:mm a

geben Sie einfach eine Zeichenkette aus dieser Funktion zurück wie.

public String convertToOnlyDate(String currentDate) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm a ");
    Date date;
    String dateString = "";
    try {
        date = dateFormat.parse(currentDate);
        System.out.println(date.toString()); 

        dateString = dateFormat.format(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return dateString;
}

Diese Funktion liefert Ihnen die gewünschte Antwort. Wenn Sie mehr anpassen möchten, fügen Sie einfach eine Komponente zum Datumsformat hinzu oder entfernen sie.

0voto

Emad Aljumaily Punkte 3

Sie haben etwas falsch verstanden: SimpleDateFormat dt1 = new SimpleDateFormat("jjjjj-mm-tt");

erste : sollte sein new SimpleDateFormat("yyyy-mm-dd"); //yyyy 4 nicht 5 diese Anzeige 02011, aber jjjj zeigt 2011 an

zweite: Ändern Sie Ihren Code wie folgt new SimpleDateFormat("yyyy-MM-dd");

Ich hoffe, ich kann Ihnen helfen

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