java date de création de l'objet à l'aide d'une chaîne de valeur
Je suis en utilisant cette pour obtenir l'heure actuelle :
java.util.Calendar cal = java.util.Calendar.getInstance();
System.out.println(new java.text.SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss")
.format(cal.getTime()));
Je veux mettre la valeur (qui-je l'imprimer) dans un objet date, j'ai essayé ceci:
Date currentDate = new Date(value);
mais eclipse me dit que cette fonction n'est pas bonne.
Modifier
le value
est la valeur que j'ai imprimé à l'aide de système.out.println
- Dinatsoil Ce qui est de la valeur. Veuillez indiquer clairement.
- Qu'utilisez-vous pour
value
? value
est unString
? Vous devez également analyser avecSimpleDateFormat
.hh
est de douze heures,HH
vingt-quatre heures. Sans AM/PM probablement HH.- j'ai modifier la question
- Votre programme est également en cours d'exécution sur MyEclipse sans aucun problème.Ensuite, ce que vous avez vraiment besoin.
- Pour info, le gênants
Date
&Calendar
classes sont maintenant héritage, supplantée par la java.de temps les classes.
Vous devez vous connecter pour publier un commentaire.
Chaque fois que vous voulez convertir une Chaîne de caractères de l'objet Date ensuite utiliser
SimpleDateFormat#parse
Essayez d'utiliser
.Chose supplémentaire est que si vous voulez convertir un
Date
àString
alors vous devriez utiliserSimpleDateFormat#format
fonction.Maintenant, le Point pour vous
new Date(String)
est déconseillée et ne maintenant.Maintenant, chaque fois que quelqu'un veut analyser , alors il/elle doit utiliserSimpleDateFormat#parse
.reportez-vous à la officiel doc pour plus de la Date et de l'Heure des Modèles utilisés dans SimpleDateFormat options.
new SimpleDateFormat(format)
exactement comme votre corde et puis juste besoin d'analyser.Comme votrenew java.text.SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss") .format(cald.getTime())
renverra une Chaîne et d'en question, je suppose que vous voulez convertir enDate
puis c'est le moyen que j'ai répondudateInString
est la chaîne de caractères que vous avez qui vous souhaitez transformer en une date.dateInString
Thu Apr 25 00:23:26 PDT 2013
et il n'est pas dans le format que je veux , pourquoi s'il vous plaît?java.util.Date
et vous ne pouvez pas remplacer son format en utilisantjava.util.Date
.Si vous souhaitez imprimer votre format de votre choix, puis vous avez àformat
votre date avec l'aide deDate
objet , vous ne pouvez pas faire cela.Simplement, on peut dire que La classe Date ne stocke aucune information sur la mise en forme. La classe Date existent essentiellement simplement d'un privé à long millisecondes champUtilisation SimpleDateFormat méthode d'analyse:
Puisque nous avons Java 8 avec LocalDate je suggère d'utiliser la prochaine:
Ci-dessus est la méthode d'importation, ci-dessous est le code simple pour la Date
TOUT D'ABORD CONNAÎTRE LA RAISON DE L'ÉCLIPSE EST DE LE FAIRE.
Date a qu'un seul constructeur Date(de longue date) qui demande pour la date en type de données long.
Le constructeur vous utilisez
Date(String s)
Déconseillé. Que de la version de JDK 1.1, remplacé par DateFormat.parse(String s).
C'est pourquoi eclipse indique que cette fonction n'est pas bon.
Voir ce officiel docs
http://docs.oracle.com/javase/6/docs/api/java/util/Date.html
Des méthodes obsolètes de votre contexte -- Sources -- http://www.coderanch.com/t/378728/java/java/Deprecated-methods
Il y a un certain nombre de raisons pour lesquelles une méthode ou une classe peut devenir obsolète. Une API peut pas être facilement extensible sans casser la compatibilité ascendante, et donc être remplacée par une plus puissante de l'API (par exemple, java.util.La Date a été dépréciée en faveur de l'Agenda ou le Java 1.0 modèle d'événement). Il peut aussi tout simplement pas de travail ou de produire des résultats incorrects dans certaines circonstances (par exemple, certains de java.io les classes de flux ne fonctionnent pas correctement avec certains encodages). Parfois, une API est tout simplement mal conçu (modèle singlethreadmodel dans la servlet API), et sera remplacé par rien. Et certains des premiers appels ont été remplacés par "Java Bean"-compatible méthodes (taille par getSize, limites par getBounds etc.)
SEVRAL SOLUTIONS SONT LÀ, SIMPLEMENT GOOGLE--
Vous pouvez utiliser date(de longue date), Par la conversion de votre Chaîne de date dans la longue millisecondes et stackoverflow a tellement de post à cet effet.
la conversion d'une chaîne de date en millisecondes en java
Essayez ceci :-
De sortie:-
Votre valeur doit être bon format.
Dans votre question, vous avez demandé ci-dessous :-
Ce style de date constructeur est déjà obsolète.Par conséquent, ne plus l'utiliser.Nous savons que la Date a 6 constructeur.Lire plus
Ici est la solution optimisée pour le faire avec
SimpleDateFormat
parse()
méthode.Quelques choses à remarquer
& le temps au lieu d'utiliser
new Date()
SimpleDateFormat
commetrouvé dans la plupart voté de réponse à cette question. C'est juste un
gaspillage de mémoire
Exception
est une mauvaise pratique quand on sait que leparse
méthode seulement une chance de jeter unParseException
. Nous avons besoin de être aussi précis que possible lorsque vous traitez avec des Exceptions. Vous pouvez vous référer, throws Exception d'une mauvaise pratique?C'est parce que la valeur Chaîne (Java Date de constructeur de l'objet pour obtenir la chaîne de caractères est obsolète)
et
Date(String)
est obsolète.Ont un coup d'oeil à jodatime ou vous pourriez mettre @SuppressWarnings({“autodérision”}) en dehors de la méthode de l'appel de la
Date(String)
constructeur.Ce que vous êtes essentiellement en essayant de faire est ceci:-
La raison d'être,
String
qui vous avez l'impression est juste unString
représentation de laDate
dans votre format requis. Si vous essayez de le convertir à jour, vous finirez par la suite de faire ce que j'ai mentionné ci-dessus.Mise en forme
Date
(cal.getTime()) à unString
et essayer de revenir unDate
de il - n'a pas de sens.Date
a pas de format en tant que tel. Vous ne pouvez obtenir unString
représentation de la qui aide les SDF.