2009-04-06 13 views
1

Je stocke des valeurs et des valeurs de date dans un magasin d'enregistrements. Je mon champ de quantième comme ceci:Pourquoi mon J2ME DateField n'affiche-t-il pas la bonne date?

StartDate = new DateField("Start Date ", DateField.DATE); 
       cal1 = Calendar.getInstance(); 
       cal1.set(Calendar.YEAR, 2009); 
       cal1.set(Calendar.MONTH, 0); 
       cal1.set(Calendar.DAY_OF_MONTH, 1); 
       StartDate.setDate(cal1.getTime()); 

et j'enregistrer la date sous forme de chaîne comme suit: (. J'ai raccourci le code)

strStartDate = cal1.get(cal1.DAY_OF_MONTH) + "/" + 
       (cal1.get(cal1.MONTH) + 1) + "/" + 
       cal1.get(cal1.YEAR); 
String detailsToAdd = strStartDate 

Maintenant, je veux être en mesure pour modifier la date à un stade ultérieur. Cependant, j'ai besoin du code pour pouvoir le faire. Jusqu'à présent, je:

EStartDate = new DateField("Start Date ", DateField.DATE); 

je devais changer le nom de la boîte DateField comme cela a été en conflit avec d'autres choses.

Je dois essentiellement pouvoir afficher l'attribut de date de l'enregistrement sélectionné. J'ai actuellement les autres informations affichées. Je dois juste être capable de montrer la bonne date. Lorsque j'exécute le programme, le champ de date indique <date>.

Toute aide sera agréable

+0

Le titre de cette question doit être plus spécifique que 'quelqu'un peut-il aider' pour que les gens prennent la peine de regarder. –

+0

Ceci est la première question de l'utilisateur. Sois gentil. J'ai corrigé le titre. – Eddie

Répondre

0

pourrait-il que les paramètres régionaux que vous utilisez en n'accepte pas les dates avec / comme séparateur? Je suis certain qu'il existe une méthode indépendante de la locale pour composer une date sans utiliser de concaténation de chaîne comme dans votre exemple.

1

Votre premier code comme suivi est correct:

  StartDate = new DateField("Start Date ", DateField.DATE); 
      cal1 = Calendar.getInstance(); 
      cal1.set(Calendar.YEAR, 2009); 
      cal1.set(Calendar.MONTH, 0); 
      cal1.set(Calendar.DAY_OF_MONTH, 1); 
      StartDate.setDate(cal1.getTime()); 

Mais pour le second, vous ne pouvez pas enregistrer la date de chaîne directement. Vous devez le convertir en chaîne comme ceci:

  String detailsToAdd =strStartDate.toString(); 
0

code snippet fourni ne pas utiliser setDate(Date). Si votre code actuel ne l'utilise pas aussi, alors <date> dans le champ est le comportement correct - il vous indique que la date est "non initialisée".

Dans ce cas, la première fumée test avec un code simple, comme

eStartDate = new DateField("Start Date ", DateField.DATE); 
    eStartDate.setDate(new Date()); 

alors, si cela montre la date, apprendre à recréer le paramètre nécessaire Date de strStartDate. C'est-à-dire, recréer si vous voulez que l'utilisateur puisse le modifier - parce que si tout ce dont vous avez besoin est d'afficher la date, il serait plus simple d'utiliser StringItem afficher la chaîne nécessaire à la place