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
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
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.
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
L'ho pensato anch'io, ma java.text.ParseException: Data non analizzabile: "2013-03-31T16: 46: 38.000Z" –