Ho un requisito in cui è possibile passare la data nei seguenti formati prima di indicizzarli su Solr. Ecco gli esempi di date superate Come creare un formattatore di date generico in java per Solr?
String dateStr = "2012-05-23T00:00:00-0400";
String dateStr1 = "May 24, 2012 04:57:40 GMT";
String dateStr2 = "2011-06-21";
Il formato standard Solr è
"aaaa-MM-gg'T'HH: mm: ss'Z '".
Ho provato SimpleDateFormat ma non è in grado di scrivere un programma generico per supportare vari formati. Finisce per lanciare eccezioni parse.
Ho anche provato il tempo joda, ma non è stato finora soddisfacente nella conversione UTC.
public static String toUtcDate(final String iso8601) {
DateTime dt = ISO_PARSE_FORMAT.parseDateTime(iso8601);
DateTime utcDt = dt.withZone(ZONE_UTC);
return utcDt.toString(ISO_PRINT_FORMAT);
}
Esiste una libreria standard per raggiungere questo obiettivo?
Qualsiasi suggerimento sarà apprezzato.
Grazie
Grazie per la risposta. Stavo cercando di evitare questa soluzione e cercando se ce n'è uno disponibile, che può soddisfare qualsiasi formato di data, purché valido. Il problema con questo approccio è ogni volta che c'è un nuovo formato, il codice si rompe a meno che non lo aggiungiamo nell'array. Speravo se ci fosse uno strumento disponibile che già approvvigiona a questo. – Shamik
Una volta scrissi qualcosa del genere, e potevo solo pensare a circa una dozzina circa - le persone non usano effettivamente molti formati di date differenti. Il problema principale era decidere se '01-02-2012' è Jan o Feb, perché può essere analizzato con OK sia' gg-MM-aaaa' * che * lo stupido formato americano 'MM-gg-aaaa'. – Bohemian
Il formato americano è facilmente analizzabile visivamente. E definirlo "stupido" non è un modo di rispondere per mancanza di un proprio i18n. –