问题
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
回答1:
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());
回答2:
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
来源:https://stackoverflow.com/questions/8476147/how-to-convert-formatted-date-yyyy-mm-dd-to-unix-time-in-java