Pour SRDice je travaille à proposer la possibilité de sauver les résultats des jets de dés Shadowrun dans un fichier de log. Et qui dit log dit date !
En cherchant à faire une fonction pour récupérer la date courante, je me suis retrouvé face à une erreur due à mon inattention…
Quand je déclare Date() dans mon programme, Eclipse me propose de rajouter dans le code l’import qui va bien, comme tout appels à des classes Android ou Java non encore déclarées.
« Date cannot be resolved to a type »
Dans 90% des cas, il n’y a qu’un seul Import de proposé. Du coup, j’ai cliqué sans vraiment lire sur le premier. Évidemment celui qu’il faut n’est pas java.sql.Date mais java.util.Date.
Après import de java.sql.Date je me retrouve donc toujours avec une erreur, cette fois : « The constructor Date() is undefined »
Heureusement une petite recherche m’a permis de corriger bien vite :
http://stackoverflow.com/questions/5930498/why-does-date-d-new-date-return-an-error
Et tout fonctionne bien avec
import java.util.Date;
Voici le code source de la fonction pour renvoyer une chaîne de caractère (String) contenant une Date :
/** * Renvoie la date courante en String * @return String */ private String _getCurrentDateTimeString() { Date curDate = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDateString = formatter.format(curDate); return formattedDateString; }
Sur le lien ci-dessous vous trouverez tous les arguments qu’on peut donner à SimpleDateFormat : http://developer.android.com/reference/java/text/SimpleDateFormat.html
[…] Pour la fonction _getCurrentDateTimeString() je vous renvoie au billet Dév Android : attention à l’import de classe Date […]
[…] fonctions diverses comme la fermeture du clavier virtuel, la récupération de la date courante, la vérification du nombre de […]