2010-06-16 6 views
17

Il seguente codice mi dà la data analizzata come "Mer 13 gen 00:00:00 EST 2010" anziché "Mer 13 giu 00:00:00 EST 2010". Qualche idea molto apprezzata.SimpleDateFormat che ignora il mese durante l'analisi di

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

Nota che hai "mm" due volte, una volta al mese e una volta al minuto. – ColinD

risposta

49

Prova:

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

MM significa mese. mm significa minuti. Consultare la documentazione per SimpleDateFormat per ulteriori dettagli sui modelli di data e ora supportati.

+0

Grazie, l'ho capito. – manu

+2

Benvenuti in SO, @manu! Sembra che tu consideri questa la risposta corretta. Puoi contrassegnarlo come risposta accettata facendo clic sul contorno di un segno di spunta sopra e alla sinistra di questo commento. Ciò aiuta le altre persone a vedere che la domanda ha avuto risposta, dà al rispondente un rep di +15 e ti dà un rep di +2! – Pops

+2

@manu - "Capito"? Oppure leggi il commento di ColinD? – duffymo

4

Il problema è che si utilizza "mm" come mese e "mm" rappresenta minuti. Di seguito sono disponibili tutti i formati di data, maggiori informazioni 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

esempio se la data è 06 07 2016

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

è possibile utilizzare una virgola, full-stop, Slash, o trattino tra questi formati.

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) 
Problemi correlati