Je souhaite imprimer la date et l’heure actuelles en Java. C’est le code que j’essaie à partir d’un didacticiel Java:
import Java.util.*;
public class Date {
public static void main(String args[]) {
// Instantiate a Date object
Date date = new Date();
// display time and date using toString()
System.out.println(date.toString());
}
}
Ça compile bien. Mais le résultat donné est:
Date @ 15db9742
Bien que j'attende un résultat comme celui-ci:
Lun 04 mai 09:51:52 CDT 2009
Quel est le problème avec le code?
EDIT: J'ai essayé de renommer la classe .. Le code édité:
import Java.util.*;
public class DateDemo {
public static void main(String args[]) {
// Instantiate a Date object
Date d = new Date();
// display time and date using toString()
System.out.println(d.toString());
}
}
Voici comment j'ai compilé le code et exécuté:
sou @ sou-linux: ~/Bureau/Java $ javac DateDemo.Java
sou @ sou-linux: ~/Bureau/Java $ DateDemo Java
La sortie est:
Date @ 15db9742
Votre classe est une classe personnalisée qui produit la sortie donnée par Object.toString
. Renommez la classe en autre chose que Date
afin que Java.util.Date
soit correctement importé
Vous obtenez la toString()
par défaut de Object
car vous avez créé votre propre classe nommée Date
qui masque la Date
importée de Java.util.
. Vous pouvez renommer votre classe ou utiliser le nom canonique Java.util.Date
like
public static void main(String args[]) {
Java.util.Date date = new Java.util.Date();
System.out.println(date);
}
La sortie ici est
Mon Nov 03 10:57:45 EST 2014
public static void main(String[] args) {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//get current date time with Date()
Date date = new Date();
System.out.println(dateFormat.format(date));
//get current date time with Calendar()
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));
}
Vous ne devez pas utiliser la méthode toString (), car:
La méthode toString pour la classe Object renvoie une chaîne composée du nom de la classe dont l'objet est une instance, du caractère de signe @ et de la représentation hexadécimale non signée du code de hachage de l'objet. En d'autres termes, cette méthode retourne une chaîne égale à la valeur de:
getClass (). getName () + '@' + Integer.toHexString (hashCode ())
Citation de docs.Oracle: http://docs.Oracle.com/javase/7/docs/api/Java/lang/Object.html ).
La classe Date est conçue pour être utilisée comme tout le monde a répondu. Je voulais juste expliquer/vous donner une référence à pourquoi.
import Java.util.Date;
public class Dte {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date.toString());
}
}
Modifiez le nom de la classe Date
en Dte
ou quelque chose et le code fonctionnera correctement.
Le résultat est: Mon Nov 03 21:27:15 IST 2014
Renommez votre classe de Date en quelque chose d'autre. Ce qui suit fonctionne alors comme prévu:
import Java.util.Date;
public class ImplClass
{
public static void main(String args[])
{
Date date = new Date();
// display time and date using toString()
System.out.println(date.toString());
}
}
La sortie est au format souhaité
Mon Nov 03 09:49:57 CST 2014
Tu peux essayer ça,
import Java.util.Date;
public class CurrentDate
{
public static void main(String[] args)
{
Date currentDate = new Date();
System.out.println("Curent Date and Time - " + currentDate.toString());
}
}
Sortie:
Mon May 04 09:51:52 CDT 2009
Vous pouvez également consulter les liens ci-dessous concernant le formatage de la date et de l'heure. Plutôt utile.
https://docs.Oracle.com/javase/tutorial/datetime/iso/datetime.html
https://docs.Oracle.com/javase/7/docs/api/Java/sql/Date.html
Vous pouvez garder le code aussi simple que ::
import Java.util.*;
public class Today{
public static void main(String args[]){
System.out.println("System Date :: ");
System.out.println(new Date());
}
}
Ainsi que changer le nom de la classe à aujourd'hui ou quelque chose d'autre, mais pas la date car c'est un mot clé
Votre nom de classe est Date donc
Date date = new Date();
créera un objet de votre classe et lorsque vous appelerez date.toString()
, ce sera la méthode par défaut Object.toString()
.
Donc si vous devez utiliser la classe Java.util.Date
, renommez votre classe Date
en quelque chose d'autre