/ / Format la date dans un format spécifique - java, android, analyse, date, formatage

Formatez la date dans un format spécifique - Java, Android, analyse, date, formatage

J'ai analysé un flux RSS et je cherchecomment formater la date correctement. J'essaie de le faire dire quelque chose comme mercredi 4 décembre 2012. Je le fais passer par une boucle for pour générer mes données. Voici le code que je m utilise:

Feed = new URL(URLFeed);
DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance();
db = dbf.newDocumentBuilder();
doc = db.parse(new InputSource(Feed.openStream()));
doc.getDocumentElement().normalize();
nodeList = doc.getElementsByTagName("item");

title = new String[nodeList.getLength()];
pubDate = new String[nodeList.getLength()];
link = new String[nodeList.getLength()];

for(int i=0;i<nodeList.getLength();i++){
Node node = nodeList.item(i);

Element fstElmnt = (Element) node;

NodeList titleList = fstElmnt.getElementsByTagName("title");
Element titleElement = (Element) titleList.item(0);
titleList = titleElement.getChildNodes();
title[i] = ((Node) titleList.item(0)).getNodeValue();


NodeList pubDateList = fstElmnt.getElementsByTagName("pubDate");
Element pubDateElement = (Element) pubDateList.item(0);
pubDateList = pubDateElement.getChildNodes();
pubDate[i] = ((Node) pubDateList.item(0)).getNodeValue();


NodeList linkList = fstElmnt.getElementsByTagName("link");
Element linkElement = (Element) linkList.item(0);
linkList = linkElement.getChildNodes();
link[i] = ((Node) linkList.item(0)).getNodeValue();

}

Voici ce qu'il retourne:

Date Android Date

Comment formater ma date correctement?

Réponses:

4 pour la réponse № 1

Actuellement, vous récupérez simplement les données des nœuds XML sous forme de chaîne. Vous devez analyser cette chaîne dans le format d'entrée, puis format dans le format souhaité. Les deux peuvent être atteints en utilisant SimpleDateFormat.

Vous devez déterminer le fuseau horaire que vous souhaitez utiliser pour la sortie - l’entrée a déjà "décalage par rapport à UTC", vous n'avez donc pas besoin de vous inquiéter à ce sujet.

Ensuite, vous devez déterminer comment gérer l’internationalisation. Vous voulez probablement afficher les informations dans les paramètres régionaux de l’utilisateur? Si oui, vous voudrez peut-être utiliser DateFormat.getDateInstance() au lieu de SimpleDateFormat. Ne pas oublier d'utiliser Locale.US pour le contribution format cependant, étant donné que didn "t dépend de l'utilisateur.

Donc, à titre d'exemple complet, vous voudrez peut-être:

SimpleDateFormat inputFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z",
Locale.US);
DateFormat outputFormat = DateFormat.getDateInstance(DateFormat.LONG,
userLocale);
// TODO: Set time zone in outputFormat

Date date = inputFormat.parse(inputText);
String outputText = outputFormat.format(date);

1 pour la réponse № 2

J'espère que vous avez entendu parler de SimpleDateFormat pour formater la date, vous obtenez maintenant la date du flux en tant que E, jj MMM aaaa HH: mm: SS Z Alors faut le formater comme EEE, MMMM j, aaaa. Pour ce faire, essayez ce qui suit ..

SimpleDateFormat fromFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z", Locale.US);
SimpleDateFormat toFormat = new SimpleDateFormat("EEE, MMMM d, yyyy", Locale.US);

try {
Date fromDate = fromFormat.parse(pubDate[i]) //pubDate[i] is your date (node value)
pubDate[i] = toFormat.format(fromDate);
} catch (Exception e) {
e.printStackTrace();
}

vous pouvez obtenir des informations sur DateFormat ici


0 pour la réponse № 3

voir un Parse RSS objet pubDate to Date en Java

pubDate[i] = ((Node) pubDateList.item(0)).getNodeValue();
DateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
Date date = formatter.parse(pubDate[i]);

...

0 pour la réponse № 4

Si vous souhaitez imprimer / analyser le nom complet du jour de la semaine et le nom du mois, le modèle est le suivant: -

Format formatter = new SimpleDateFormat("EEEE,MMMM,dd");
String s = formatter.format(new Date());
System.out.println(s);