Как использовать конструктор Timestamp

1

Я хочу использовать конструктор по умолчанию для класса Timestamp в Java, но Eclipse указывает, что он устарел. Это конструктор:

Timestamp myDate = new Timestamp(2014, 3, 24, 0, 0, 0 ,0);

Eclipse рекомендует использовать конструктор по умолчанию Timestamp(long time) но я не знаю, как его использовать.

Теги:
timestamp
deprecated
default-constructor

5 ответов

5
Лучший ответ

Как насчет следующего метода?

int myYear = 2014;
int myMonth = 3;
int myDay = 24;
Timestamp ts = Timestamp.valueOf(String.format("%04d-%02d-%02d 00:00:00", 
                                                myYear, myMonth, myDay));

Использование JSR 310: API даты и времени (представленный в выпуске Java SE 8):

java.sql.Timestamp ts = java.sql.Timestamp.valueOf(
        java.time.LocalDate.of(myYear, myMonth, myDay).atStartOfDay()
);
  • 0
    У меня есть int переменные myYear , myMonth и myDay . Как я могу использовать их здесь: Timestamp ts = Timestamp.valueOf("myYear-myMonth-myDay 00:00:00");
  • 0
    Я обновил свой ответ. Удачи!
Показать ещё 1 комментарий
2

Создайте экземпляр java.util.Date (не путать с java.sql.Date) и пропустите его время в миллисекундах в качестве аргумента для Timestamp. Вот пример:

Timestamp now = new Timestamp(new java.util.Date().getTime());

Существуют и другие способы создания экземпляра объекта java.util.Date:

  • Использование Calendar:

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR, 0);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.MILLISECOND, 0);
    Date today = calendar.getTime();
    Timestamp now = new Timestamp(today.getTime());
    
  • Использование DateFormat или его дочернего класса SimpleDateFormat.

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    Date date = sdf.parse("2014/3/24");
    Timestamp today = new Timestamp(date.getTime());
    
1

Настройте календарь на определенную дату, затем получите время в миллисекундах, используйте его в конструкторе метки времени:

new Timestamp(new GregorianCalendar(2014, 3, 24).getTimeInMillis());
1

Как объясняется в этом ответе, вы можете проанализировать его с помощью класса DateFormat:

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = dateFormat.parse("23/09/2007");
long time = date.getTime();
new Timestamp(time);
0

Вы можете использовать класс GregorianCalendar

GregorianCalendar cal = new GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second);
Timestamp ts = new Timestamp(cal.getTimeInMillis());

Если у вас есть строка в следующем формате, вы также можете сделать:

Timestamp ts = Timestamp.valueOf("2014-01-01 00:00:00");
  • 1
    Используйте Calendar.getInstance вместо прямой работы с GregorianCalendar .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню