Как преобразовать форматированную дату (гггг-мм-дд) в время Unix в Java?

Как преобразовать форматированную дату (гггг-мм-дд) в время Unix в Java?

Я хочу объявить дату, используя

    Date birthday = new Date(y_birthday, m_birthday, d_birthday);

но этот конструктор устарел, поэтому я должен использовать другой конструктор, который использует временную метку Unix


person bbnn    schedule 12.12.2011    source источник


Ответы (2)


Итак, у вас есть дата в виде строки в формате yyyy-MM-dd? Используйте java.text.SimpleDateFormat, чтобы преобразовать его в объект java.util.Date:

String text = "2011-12-12";

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date = df.parse(text);

редактировать Если вам нужен java.sql.Date, вы можете легко преобразовать java.util.Date в java.sql.Date:

java.sql.Date date2 = new java.sql.Date(date.getTime());
person Jesper    schedule 12.12.2011
comment
на самом деле это для даты в java.sql.Date - person bbnn; 12.12.2011
comment
Ответ @Jesper правильный, также java.sql.Date расширяет java.util.Date ;-) - person Jerry Tian; 12.12.2011

Используйте объект календаря, если вы хотите больше контролировать объект даты

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2011);
calendar.set(Calendar.MONTH, 11); // indexed month (December)
calendar.set(Calendar.DATE, 12);
Date date = new Date(calendar.getTime().getTime());

Часы, минуты, секунды и т. д. текущего времени будут установлены, поэтому вы можете установить их на 0 (вручную для каждого поля).

Если вы используете Java 7, то я думаю, что есть гораздо более приятные вещи, которые вы можете использовать для обработки дат.

person Edd    schedule 12.12.2011