2014-11-03 31 views
11

voglio stampare la data e l'ora corrente a java..This è il codice che sto cercando da un tutorial Java:stampa data corrente in 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()); 
    } 
} 

Si compila bene. Ma l'uscita è data:

Data @ 15db9742

Mentre mi aspetto un output come questo:

lun 4 mag 09:51:52 CDT 2009

Cosa c'è di sbagliato nel codice?

EDIT: ho provato a rinominare la classe .. Il codice Editted:

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()); 
    } 
} 

Ecco come ho compilato il codice e corsi:

sou @ sou-linux: ~/Desktop/java $ javac DateDemo.java

sou @ sou-linux: ~/Desktop/java $ java DateDemo

L'output è:

Data @ 15db9742

+0

quale versione di Java avete ottenuto? – user902383

+7

rinomina la tua classe, ora stai istanziando la classe stessa – Joren

+0

Provato a rinominare la mia classe. L'uscita non è ancora desiderata. – rick112358

risposta

13

La tua classe è un'abitudine classe che sta producendo l'output dato da Object.toString. Rinominare la classe per qualcosa di diverso in modo che Datejava.util.Date è importato correttamente

+0

Insieme alla ridenominazione della classe, sarà inoltre necessario eliminare Data.java e Data scritte in precedenza.classe prima di ricompilare il nuovo codice per farlo funzionare come previsto. – sactiw

1

Rinominare la classe da Data a qualcos'altro .. Il seguente quindi funziona proprio come previsto:

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()); 
    } 

} 

l'uscita è in il formato desiderato

Mon Nov 03 09:49:57 CST 2014 
6

hai trovato la predefinita toString() da Object perché si è creato la propria classe di nome Date che si nasconde il Date importato da java.util.. È possibile rinominare la tua classe o è possibile utilizzare il nome canonico java.util.Date come

public static void main(String args[]) { 
    java.util.Date date = new java.util.Date(); 
    System.out.println(date); 
} 

uscita qui è

Mon Nov 03 10:57:45 EST 2014 
1

tuo nome classe è data così

Date date = new Date(); 

creerà un oggetto della vostra classe e quando si chiama date.toString() sarà il metodo predefinito Object.toString().
Quindi, se si deve utilizzare la classe java.util.Date, rinominare la classe Date a qualcos'altro

3
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())); 

} 
2
import java.util.Date; 
public class Dte { 

    public static void main(String[] args) { 
     Date date = new Date(); 
     System.out.println(date.toString()); 
    } 
} 

Cambiare il nome della classe Date a Dte o qualche cosa e il codice funzionerà correttamente.

L'output è: Mon Nov 03 21:27:15 IST 2014

2

Si consiglia di non utilizzare il metodo toString(), in quanto:

Il metodo toString per la classe Object restituisce una stringa contenente il nome della classe di cui il object è un'istanza, il carattere at-sign `@ 'e la rappresentazione esadecimale senza segno del codice hash dell'oggetto. In altre parole, questo metodo restituisce una stringa uguale al valore di:.

getClass() getName() + '@' + Integer.toHexString (hashCode())

preventivo da documenti. oracolo: http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html).

La classe Date è progettata per essere utilizzata come tutti gli altri hanno risposto. Volevo solo spiegarti/darti un riferimento al perché.

+0

La classe java.util.Date sostituisce il metodo toString() della classe Object per stampare la data nel seguente formato: dow mon dd hh: mm: ss zzz yyyy La vera ragione del "perché?" è che il suo oggetto Date non è della classe java.util.Date ma della sua classe Date. – sactiw

1

Si potrebbe mantenere il codice semplice come ::

import java.util.*; 
public class Today{ 
    public static void main(String args[]){ 
    System.out.println("System Date :: "); 
    System.out.println(new Date()); 
    } 
} 

Così come cambiare il nome della classe per oggi o qualcos'altro, ma non Data in quanto è una parola chiave

1

Si può provare questo,

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()); 
    } 
} 

uscita:

Mon May 04 09:51:52 CDT 2009 

Inoltre, è possibile fare riferimento ai collegamenti riportati di seguito sulla formattazione di data e ora. Abbastanza utile

https://docs.oracle.com/javase/tutorial/datetime/iso/datetime.html

https://docs.oracle.com/javase/7/docs/api/java/sql/Date.html

http://www.flowerbrackets.com/date-time-java-program/