Question

Le code suivant me donne la date analysée comme "Mer 13 janvier 2010 00:00:00 EST"      au lieu de "Mer 13 juin 2010 00:00:00 EST". Toutes les idées beaucoup apprécié.

    SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");

    String str = "2010-06-13T00:00:00";

    Date date = sf.parse(str);

    System.out.println(" Date " + date.toString());
Était-ce utile?

La solution

Essayez:

"yyyy-MM-dd'T'HH:mm:ss"

MM signifie mois. mm signifie minutes. Consultez la documentation de SimpleDateFormat pour plus de détails sur les modèles de date et l'heure pris en charge.

Autres conseils

Le problème est que vous utilisez « mm » en mois et « mm » représente minutes. Ci-dessous tous les formats de date disponibles, en savoir plus 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 

réponse moderne:

    String str = "2010-06-13T00:00:00";
    LocalDateTime dateTime = LocalDateTime.parse(str);
    System.out.println("Date-time " + dateTime);

Sortie:

  

Date-heure 2010-06-13T00: 00

J'utilise et recommander java.time, la date et l'API Java moderne du temps. Nous ne même pas besoin d'un formatter explicite pour l'analyse syntaxique. Ceci est parce que votre chaîne est au format ISO 8601, la norme internationale que les classes java.time comme parse par défaut. java.time est sorti en 2014.

Alors qu'en 2010, lorsque cette question a été posée, SimpleDateFormat était ce que nous avions pour les dates et les heures l'analyse syntaxique, cette classe est désormais considérée comme dépassée depuis longtemps, heureusement, car il était aussi gênant.

Dans le cas où votre chaîne ne contenait que date sans temps de la journée, utilisez la classe LocalDate tout à fait de la même manière (cela a été demandé dans une double question).

    String dateStr = "2018-05-23";
    LocalDate date2 = LocalDate.parse(dateStr);
    System.out.println(date2);
  

23/05/2018

: tutoriel Oracle: Date Heure expliquant comment utiliser java.time.

Exemple si la date est 06 07 2016

SimpleDateFormat sdf= new SimpleDateFormat("dd MM yyyy");

vous pouvez utiliser des virgules, arrêt complet, barre oblique, ou trait d'union entre ces formats.

 Ex: dd-mm-yyyy, it will display like(06-07-2016)
 dd/mm/yyyy,it will display like(06/07/2016)
 dd.mm.yyyy,it will display like(06.07.2016)
 dd,mm,yyyy ,it will display like(06,07,2016)

 MM   - will display number of the Month.
 MMM  - will display Month Three character only(Ex: Jul)
 MMMM - will display full month(Ex: July)

 yyyy - will display full year(2016) 
 yy   - will display last two digits(16)

 hh - will display hours
 mm -will display minutes
 ss - will display seconds
 a - will display AM or PM

 Ex: if time is 12:09:10 PM means (hh:mm:ss a)

 EEE- will display short week name(Ex: Wed)
 EEEE- will display full week name(Ex: Wednesday)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top