Le code suivant me donne la date analysée comme "mer 13 jan 00:00:00 EST 2010" au lieu de "mer 13 juin 00:00:00 EST 2010". Toutes les idées sont très appréciées.
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());
Essayer:
"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 d’heure pris en charge.
Le problème est que vous utilisez «mm» comme mois et «mm» représente les minutes. Ci-dessous tous les formats de date disponibles, lisez 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
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 recommande Java.time
, l'API de date et heure moderne de Java. Nous n’avons même pas besoin d’un formateur explicite pour l’analyse. En effet, votre chaîne est au format ISO 8601, la norme internationale que les classes Java.time
analysent 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 l'analyse des dates et des heures, cette classe est maintenant considérée comme étant dépassée depuis longtemps, heureusement, car elle posait également problème.
Si votre chaîne ne contenait que date sans heure de la journée, utilisez la classe LocalDate
de la même manière (la question a été posée dans une question en double ).
String dateStr = "2018-05-23";
LocalDate date2 = LocalDate.parse(dateStr);
System.out.println(date2);
2018-05-23
Link:Tutoriel Oracle: Date Time expliquant comment utiliser Java.time
.
Exemple si la date est le 06 07 2016
SimpleDateFormat sdf= new SimpleDateFormat("dd MM yyyy");
vous pouvez utiliser une virgule, un point, une barre oblique ou un 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)