2013-04-01 14 views
10

Qual è il formato della data di caricamento di youtube api che posso utilizzare in SimpleDateFormat?Analisi di un'API di YouTube Data in Java

esempio "2013-03-31T16:46:38.000Z"

P.S. soluzione è stata trovata yyyy-MM-dd'T'HH:mm:ss.SSSX

grazie

+0

SimpleDateFormat sarà in grado di analizzare praticamente tutte le stringhe di date che vengono lanciate. Devi solo dirgli il formato in cui aspettarti. Inoltre, Apache Commons Lang ha alcune abilità di analisi delle date, credo, che potrebbero semplificare le cose. – CodeChimp

+0

L'ho pensato anch'io, ma java.text.ParseException: Data non analizzabile: "2013-03-31T16: 46: 38.000Z" –

risposta

1

Si tratta di un ISO 8061 date time

realtà, almeno in Java8 è molto semplice da analizzare che uno come c'è un predefinito DateTimeFormatter. Ecco un piccolo test di unità come dimostrazione:

import org.junit.Test; 

import java.time.ZoneOffset; 
import java.time.ZonedDateTime; 
import java.time.format.DateTimeFormatter; 

import static org.junit.Assert.assertEquals; 

public class DateTimeFormatterTest { 

    @Test 
    public void testIsoDateTimeParse() throws Exception { 
     // when 
     final ZonedDateTime dateTime = ZonedDateTime.parse("2013-03-31T16:46:38.000Z", DateTimeFormatter.ISO_DATE_TIME); 

     // then 
     assertEquals(2013, dateTime.getYear()); 
     assertEquals(3, dateTime.getMonthValue()); 
     assertEquals(31, dateTime.getDayOfMonth()); 
     assertEquals(16, dateTime.getHour()); 
     assertEquals(46, dateTime.getMinute()); 
     assertEquals(38, dateTime.getSecond()); 
     assertEquals(ZoneOffset.UTC, dateTime.getZone()); 
    } 
} 

Prima Java8, vorrei dare un'occhiata a Converting ISO 8601-compliant String to java.util.Date e sicuramente default utilizzando Joda Time con qc. come:

final org.joda.time.DateTime dateTime = new org.joda.time.DateTime.parse("2013-03-31T16:46:38.000Z"); 

BTW, non usare new DateTime("2013-03-31T16:46:38.000Z") in quanto utilizzerà il fuso orario predefinito, che probabilmente non è ciò che si vuole.