2016-04-22 10 views
0

wie wird das Datumsformat von Datumsangaben wie:
1. April 2016
3. April 2016
22. April 2016Datumsformat vom 22. April 2016?

Und gibt es eine API Daten wie das zu analysieren?

Edit: Doppelliste Fragen enthält keine Antwort über Parsing Datum mit 1 (st), 2 (nd), 3 (rd) .Ich weiß nicht, wie man St. in 1., nd in 2. und rd in 3..

+0

Danke, diese Fragen haben auch sehr geholfen. – andy

+0

Siehe auch [dieses Beispiel] (https://gist.github.com/MenoData/a133c20f54e2ee5eaa60656caccfdd11) für die Verwendung meiner API (Time4J). –

Antwort

1

Das Problem ist, dass Java das ordinal indicator Suffix, 1., 2. 3. etc. nicht versteht. Sie müssen zuerst dieses entfernen und dann das in ein DateFormat übergeben.

Ich würde auch empfehlen, dass Ihre Locale korrekt eingestellt ist, da "April" eine andere Zeichenfolge in verschiedenen Sprachen sein wird, die die geografische Portabilität Ihrer Software beeinflusst.

public static void main(String[] args) throws ParseException { 
    System.out.println(parseWithOrdinals("1st April,2016")); 
    System.out.println(parseWithOrdinals("3rd April,2016")); 
    System.out.println(parseWithOrdinals("22nd April,2016")); 
} 

private static Date parseWithOrdinals(String date) throws ParseException { 
    DateFormat format = new SimpleDateFormat("dd MMM,yyyy", Locale.UK); 
    String corrected = date.replaceFirst("(\\d+)+.*\\s(.*)", "$1 $2"); 
    return format.parse(corrected); 
} 
Verwandte Themen