bbnn
bbnn

Reputation: 3602

How to convert Formatted Date (yyyy-MM-dd) to Unix time in Java?

How to convert Formatted date (yyyy-MM-dd) to Unix time in Java?

I want to declare a date using

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

but this constructor has been deprecated, so I got to use the other constructor which uses Unix timestamp

Upvotes: 0

Views: 3460

Answers (2)

Edd
Edd

Reputation: 8570

Use a calendar object if you want more control of the date object

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

The hours, minutes, seconds etc of the current time will be set though so you may want to set those to 0 (manually per field)

If you're using Java 7 then I think there's some much nicer stuff you can use for handling dates

Upvotes: 1

Jesper
Jesper

Reputation: 206786

So, you have the date as a string in the format yyyy-MM-dd? Use a java.text.SimpleDateFormat to parse it into a java.util.Date object:

String text = "2011-12-12";

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

edit If you need a java.sql.Date, then you can easily convert your java.util.Date to a java.sql.Date:

java.sql.Date date2 = new java.sql.Date(date.getTime());

Upvotes: 8

Related Questions