J'utilise ceci 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 (que je l'imprime) dans un objet de date, j'ai essayé ceci:
Date currentDate = new Date(value);
mais Eclipse me dit que cette fonction n'est pas bonne.
Éditer La value
est la valeur que je vous ai imprimée avec system.out.println
Chaque fois que vous souhaitez convertir un objet String en Date, utilisez SimpleDateFormat#parse
.
Essayez d'utiliser
String dateInString = new Java.text.SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss")
.format(cal.getTime())
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss");
Date parsedDate = formatter.parse(dateInString);
La chose additionnelle est que si vous voulez convertir une Date
en String
, vous devez utiliser la fonction SimpleDateFormat#format
.
Maintenant, le point pour vous est new Date(String)
est obsolète et n'est pas recommandé pour le moment. Maintenant, chaque fois que quelqu'un souhaite analyser, il doit utiliser SimpleDateFormat#parse
.
référez-vous au document officiel pour plus de modèles de date et d'heure utilisés dans les options de SimpleDateFormat.
Utilisez la méthode d'analyse SimpleDateFormat:
import Java.text.DateFormat;
import Java.text.SimpleDateFormat;
String inputString = "11-11-2012";
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date inputDate = dateFormat.parse(inputString, dateFormat );
Puisque nous avons Java 8 avec LocalDate, je suggérerais d'utiliser next:
import Java.time.LocalDate;
import Java.time.format.DateTimeFormatter;
String inputString = "11-11-2012";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
LocalDate inputDate = LocalDate.parse(inputString);
EN PREMIER, CONNAISSEZ LA RAISON POURQUOI Eclipse IS FAIT DONC.
Date n'a qu'un seul constructeur Date (date longue) qui demande la date dans le type de données long.
Le constructeur que vous utilisez
Date (String s) Obsolète. À partir de la version 1.1 du JDK, remplacé par DateFormat.parse (String s).
C'est pourquoi Eclipse indique que cette fonction n'est pas bonne.
Voir ce document officiel
http://docs.Oracle.com/javase/6/docs/api/Java/util/Date.html
Méthodes obsolètes de votre contexte - Source - http://www.coderanch.com/t/378728/Java/java/Deprecated-methods
Il existe plusieurs raisons pour lesquelles une méthode ou une classe peut devenir obsolète. Une API peut ne pas être facilement extensible sans rompre la compatibilité avec les versions antérieures et doit donc être remplacée par une API plus puissante (par exemple, Java.util.Date est obsolète en faveur de Calendar ou du modèle d’événement Java 1.0). Cela peut également simplement ne pas fonctionner ou produire des résultats incorrects dans certaines circonstances (certaines classes de flux Java.io, par exemple, ne fonctionnent pas correctement avec certains codages). Parfois, une API est simplement mal conçue (SingleThreadModel dans l'API de servlet) et n'est remplacée par rien. Et certains des premiers appels ont été remplacés par des méthodes compatibles "Java Bean" (taille par getSize, bornes par getBounds, etc.)
LES SOLUTIONS SEVRALES SE TROUVENT JUSTE GOOGLE IT--
Vous pouvez utiliser date (date longue) En convertissant votre date String en longues millisecondes et stackoverflow a autant de publications à cet effet.
import Java.util.Date;
import Java.text.SimpleDateFormat;
Ci-dessus, la méthode d'importation, ci-dessous, le code simple pour Date
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
system.out.println((dateFormat.format(date)));
Essaye ça :-
try{
String valuee="25/04/2013";
Date currentDate =new SimpleDateFormat("dd/MM/yyyy").parse(valuee);
System.out.println("Date is ::"+currentDate);
}catch(Exception e){
System.out.println("Error::"+e);
e.printStackTrace();
}
Sortie:-
Date is ::Thu Apr 25 00:00:00 GMT+05:30 2013
Votre valeur doit être au format approprié.
Dans votre question, vous avez également demandé ce qui suit: -
Date currentDate = new Date(value);
Ce style de constructeur de date est déjà obsolète.Ainsi, il n’est plus utilisé. Étant donné que Date a 6 constructeur. En savoir plus
Voici la solution optimisée pour le faire avec la méthode SimpleDateFormat
parse()
.
SimpleDateFormat formatter = new SimpleDateFormat(
"EEEE, dd/MM/yyyy/hh:mm:ss");
String strDate = formatter.format(new Date());
try {
Date pDate = formatter.parse(strDate);
} catch (ParseException e) { // note: parse method can throw ParseException
e.printStackTrace();
}
Peu de choses à remarquer
new Date()
SimpleDateFormat
comme Trouvé dans la réponse la plus votée pour cette question. C'est juste un gaspillage de mémoireException
est une mauvaise pratique quand on sait que la méthode parse
n'a qu'une chance de lancer une ParseException
. Nous devons être aussi précis que possible lorsque nous traitons des exceptions. Vous pouvez vous référer, jette Exception mauvaise pratique?C'est parce que la valeur à venir String ( Le constructeur d'objet Date Java pour obtenir une chaîne est obsolète )
et Date(String)
est obsolète.
Examinez jodatime ou vous pouvez placer @SuppressWarnings ({«deprecation»}) en dehors de la méthode appelant le constructeur Date(String)
.
Ce que vous essayez essentiellement de faire est la suivante: -
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
La raison en est que la String
que vous imprimez est simplement une représentation String
de la Date
dans le format requis. Si vous essayez de le convertir en date, vous finirez par faire ce que j'ai mentionné ci-dessus.
Formater Date
( cal.getTime () ) en String
et essayer de récupérer une Date
- n’a aucun sens. Date
n'a pas de format en tant que tel. Vous ne pouvez obtenir une représentation String
de cela qu'avec le SDF.