2010-06-16 21 views
17

El siguiente código me proporciona la fecha analizada como "Wed Jan 13 00:00:00 EST 2010" en lugar de "Wed Jun 13 00:00:00 EST 2010". Cualquier idea muy apreciada.SimpleDateFormat ignorando mes al analizar

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()); 
+4

Tenga en cuenta que tiene 'mm' dos veces, una por mes y otra por minutos. – ColinD

Respuesta

49

Probar:

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

MM significa mes. mm significa minutos. Consulte la documentación para SimpleDateFormat para obtener más detalles sobre los patrones de fecha y hora compatibles.

+0

Gracias, me di cuenta. – manu

+2

Bienvenido a SO, @manu! Parece que consideras que esta es la respuesta correcta. Puede marcarlo como la respuesta aceptada haciendo clic en el contorno de una marca de verificación arriba y a la izquierda de este comentario. Eso ayuda a otras personas a ver que la pregunta ha sido respondida, le da al respondedor +15 representante y ¡le da +2 representante! – Pops

+2

@manu - "Lo resolvió"? ¿O leyó el comentario de ColinD? – duffymo

4

El problema es que está usando 'mm' como mes y 'mm' representa los minutos. A continuación se muestran todos los formatos de fecha disponibles, lea más doc here.

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 
0

Ejemplo si la fecha es 06 07 2016

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

se puede usar una coma, de punto completo, barra, o un guión entre estos formatos.

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) 
Cuestiones relacionadas