47 votes

Android SimpleDateFormat, comment l'utiliser ?

J'essaie d'utiliser l'application Android SimpleDateFormat comme ça :

String _Date = "2010-09-29 08:45:22"
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");

try {
    Date date = fmt.parse(_Date);
    return fmt.format(date);
}
catch(ParseException pe) {
    return "Date";    
}

Le résultat est bon et j'ai : 2010-09-29

Mais si je change le SimpleDateFormat a

SimpleDateFormat("dd-MM-yyyy");

le problème est que je vais recevoir 03-03-0035 ! !!!

Pourquoi et comment obtenir le format comme dd-MM-yyyy ?

96voto

Drejc Points 5424

Je suppose que vous souhaitez inverser le format de la date ?

SimpleDateFormat peut être utilisé pour l'analyse et le formatage. Vous avez simplement besoin de deux formats, l'un qui analyse la chaîne de caractères et l'autre qui renvoie l'impression souhaitée :

SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Date date = fmt.parse(dateString);

SimpleDateFormat fmtOut = new SimpleDateFormat("dd-MM-yyyy");
return fmtOut.format(date);

Depuis Java 8 :

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd").withZone(ZoneOffset.UTC);
TemporalAccessor date = fmt.parse(dateString);
Instant time = Instant.from(date);

DateTimeFormatter fmtOut = DateTimeFormatter.ofPattern("dd-MM-yyyy").withZone(ZoneOffset.UTC);
return fmtOut.format(time);

72voto

heloisasim Points 2865

Vous trouverez ci-dessous tous les formats de date disponibles, lire plus doc ici .

Symbol  Meaning                Kind         Example
D       day in year             Number        189
E       day of week             Text          E/EE/EEE:Tue, EEEE:Tuesday, EEEEE:T
F       day of week in month    Number        2 (2nd Wed in July)
G       era designator          Text          AD
H       hour in day (0-23)      Number        0
K       hour in am/pm (0-11)    Number        0
L       stand-alone month       Text          L:1 LL:01 LLL:Jan LLLL:January LLLLL:J
M       month in year           Text          M:1 MM:01 MMM:Jan MMMM:January MMMMM:J
S       fractional seconds      Number        978
W       week in month           Number        2
Z       time zone (RFC 822)     Time Zone     Z/ZZ/ZZZ:-0800 ZZZZ:GMT-08:00 ZZZZZ:-08:00
a       am/pm marker            Text          PM
c       stand-alone day of week Text          c/cc/ccc:Tue, cccc:Tuesday, ccccc:T
d       day in month            Number        10
h       hour in am/pm (1-12)    Number        12
k       hour in day (1-24)      Number        24
m       minute in hour          Number        30
s       second in minute        Number        55
w       week in year            Number        27
G       era designator          Text          AD
y       year                    Number        yy:10 y/yyy/yyyy:2010
z       time zone               Time Zone     z/zz/zzz:PST zzzz:Pacific Standard

13voto

Ajay Points 1772

Je pense que ce Lien pourrait vous aider

OU

    Date date = Calendar.getInstance().getTime();
    //
    // Display a date in day, month, year format
    //
    DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
    String today = formatter.format(date);
    System.out.println("Today : " + today);

9voto

blackbelt Points 45840
String _Date = "2010-09-29 08:45:22"
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat fmt2 = new SimpleDateFormat("dd-MM-yyyy");
    try {
        Date date = fmt.parse(_Date);
        return fmt2.format(date);
    }
    catch(ParseException pe) {

        return "Date";    
    }

Essayez ceci.

2voto

Roger Belk Points 11

Cela a marché pour moi...

@SuppressLint("SimpleDateFormat")
private void setTheDate() {
    long msTime = System.currentTimeMillis();
    Date curDateTime = new Date(msTime);
    SimpleDateFormat formatter = new SimpleDateFormat("MM'/'dd'/'y hh:mm");
    curDate = formatter.format(curDateTime);
    mDateText.setText("" + curDate);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X