Java Simpledatformat for YYYY-MM-DDThh: mm: ssTZD [duplicate]

uma das APIs externas que usamos Requer

"YYYY-MM-DDThh:mm:ssTZD"

formato a passar em

XMLGregorianCalendar

objecto. Não tenho certeza se há algo em Java que suporte "T". Eu estava pensando, se uma data pode ser processada no formato acima em Java? Um exemplo de uma data válida que tenham fornecido riz [8]}

"2009-07-16T19:20:30-05:00"............

 Update:

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZ");        
        GregorianCalendar gc = new GregorianCalendar();
        String dateString = sdf.format(gc.getTime());       
        gc.setTime(sdf.parse(dateString));      
        XMLGregorianCalendar date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);

resultado:

2014-04-17T13:11:30.000+01:00

 6
Author: Abidi, 2014-04-17

4 answers

Utilizar O JodaTime DateTimeFormat API com "yyyy-MM-dd'T'HH:mm:ssZ" Padrão de data

String date = "2009-07-16T19:20:30-05:00";
String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";
DateTimeFormatter dtf = DateTimeFormat.forPattern(pattern);
DateTime dateTime = dtf.parseDateTime(date);
System.out.println(dateTime); // 2009-07-16T19:20:30-05:00
 16
Author: Abimaran Kugathasan, 2014-04-17 11:49:20

Tenta Java 8 LocalDateTime.processar

Também pode usar threeten Se estiver numa versão Java anterior.

Exemplo: DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ").format(yourLocalDateTime)
 4
Author: cbach, 2015-10-04 18:34:09
Tens de o pôr entre aspas.

Tenta

YYYY-mm-dd'T'hh:MM:ssZ
 3
Author: Peter Lawrey, 2014-04-17 12:50:09
Podes, sim.Tente este formatador de datas.
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
 -1
Author: mstzn, 2014-04-17 11:45:25