Java – Convert Date to Calendar example
In Java, you can use calendar.setTime(date)
to convert a Date object to a Calendar object.
Calendar calendar = Calendar.getInstance();
Date newDate = calendar.setTime(date);
A Full example
DateAndCalendar.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateAndCalendar {
public static void main(String[] argv) throws ParseException {
//1. Create a Date from String
SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
String dateInString = "22-01-2015 10:20:56";
Date date = sdf.parse(dateInString);
DateAndCalendar obj = new DateAndCalendar();
//2. Test - Convert Date to Calendar
Calendar calendar = obj.dateToCalendar(date);
System.out.println(calendar.getTime());
//3. Test - Convert Calendar to Date
Date newDate = obj.calendarToDate(calendar);
System.out.println(newDate);
}
//Convert Date to Calendar
private Calendar dateToCalendar(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar;
}
//Convert Calendar to Date
private Date calendarToDate(Calendar calendar) {
return calendar.getTime();
}
}
Output
Thu Jan 22 10:20:56 SGT 2015
Thu Jan 22 10:20:56 SGT 2015
This is not completely reliable, as setTime does not set all the fields.
In this example if you converted a Date to a Calendar, then ran calendar.get(Calendar.DAY_OF_WEEK) it would return the present weekday, instead of the given date’s.
You rite it just happened to me rn… how should I convert it?
SimpleDateFormat sdf = new SimpleDateFormat(“dd-M-yyyy hh:mm:ss”);
String dateInString = “22-01-2015 10:20:56”;
You are giving a single-digit format for the month and passing ’01’, is that right? or do you need to put exactly the same amount
What is DateAndCalendar obj = new DateAndCalendar(); coming from??
See the code properly.. you will get it. Happy Debugging,