Распечатать текущую дату в java

Я хочу напечатать текущую дату и время в java..Это код, который я пытаюсь из учебника 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());
   }
}

Он компилируется отлично. Но выдаваемый результат:

Дата @15db9742

Пока я ожидаю выход следующим образом:

Пн Май 04 09:51:52 CDT 2009

Что не так с кодом?

EDIT: Я попытался переименовать класс. Измененный код:

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

Вот как я скомпилировал код и запустил:

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

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

Вывод:

Дата @15db9742

Ответ 1

Ваш класс - это пользовательский класс, который производит вывод, указанный Object.toString. Переименуйте класс в другое, кроме Date, чтобы java.util.Date был импортирован правильно

Ответ 2

Вы получаете значение по умолчанию toString() из Object, потому что вы создали свой собственный класс с именем Date, который скрывает импортированный Date от java.util.. Вы можете переименовать свой класс или использовать каноническое имя java.util.Date, например

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

Результат здесь

Mon Nov 03 10:57:45 EST 2014

Ответ 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()));

}

Ответ 4

import java.util.Date;
public class Dte {

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

Измените имя класса Date на Dte или что-то еще, и код будет работать правильно.

Выход: Mon Nov 03 21:27:15 IST 2014

Ответ 5

Нельзя использовать метод toString(), потому что:

Метод toString для класса Object возвращает строку, состоящую из имени класса, объектом которого является экземпляр, знак at-sign `@'и шестнадцатеричное представление без знака хеш-кода объекта. Другими словами, этот метод возвращает строку, равную значению:

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

Цитата из docs.oracle: http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html).

Класс Date предназначен для использования, как и все остальные. Просто хотел объяснить/дать вам ссылку на то, почему.

Ответ 6

Переименуйте свой класс из Date в другое. Следующее работает так, как ожидалось:

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

}

Выход находится в нужном формате

Mon Nov 03 09:49:57 CST 2014

Ответ 7

Ваше имя класса Date, поэтому

Date date = new Date();

создаст объект вашего класса, а при вызове date.toString() он будет использоваться по умолчанию Object.toString().
Поэтому, если вам нужно использовать класс java.util.Date, переименуйте класс Date в нечто другое

Ответ 8

Вы можете сохранить код так же просто, как:

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

Также, как изменить имя класса на сегодняшний день или что-то еще, но не Date, поскольку это ключевое слово

Ответ 9

Вы можете попробовать это,

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

Вывод:

Mon May 04 09:51:52 CDT 2009

Кроме того, вы можете ссылаться на приведенные ниже ссылки на форматирование даты и времени. Очень полезно.

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/