3

I want to convert calendar object to date as follow.

int year,month,day;
mCalendarEnd = Calendar.getInstance();
year = mCalendarEnd.get(Calendar.YEAR);
month = mCalendarEnd.get(Calendar.MONTH)+1;
day   = mCalendarEnd.get(Calendar.DAY_OF_MONTH);

Now convert it to date object

Date d1 = new Date(day,month,year);

when I print date object:

System.out.println("Date : "+d1.getDay()+"/"+d1.getMonth()+"/"+d1.getYear());

it should print current date but in above code it prints the wrong date. Any idea how can I solve this problem? your all suggestion are appreciable.

Alireza Noorali
  • 3,129
  • 2
  • 33
  • 80
  • why you want to convert calendar object to date? as you are already getting dd-mm-yy from calendar object itself. Also the methods which you are trying to use is deprecated – Kinnar Vasa Jul 16 '15 at 04:59
  • Kinnar Vasa : because i need day difference as per passing date object –  Jul 16 '15 at 05:03

5 Answers5

3

You need to do it like this

    //Set calendar
    Calendar calendar = Calendar.getInstance();
    Date date1 = calendar.getTime(); // gives a date object

    //To get day difference, Just an example
    calendar.add(Calendar.DAY_OF_MONTH, -7);
    Date date2 = calendar.getTime(); // gives a date object

    long differenceInMillis = Date1.getTime() - Date2.getTime();
    long differenceInDays = TimeUnit.DAYS.convert(differenceInMillis, TimeUnit.MILLISECONDS);

Or No need of date objects

    Calendar calendar = Calendar.getInstance();
    long date1InMillis = calendar.getTimeInMillis();

    calendar.add(Calendar.DAY_OF_MONTH, -7);
    long date2InMillis = calendar.getTimeInMillis();

    long differenceInMillis = date1InMillis - date2InMillis;
    long differenceInDays = TimeUnit.DAYS.convert(differenceInMillis, TimeUnit.MILLISECONDS);
    calendar.getTimeInMillis()
Hans Knöchel
  • 11,422
  • 8
  • 28
  • 49
Bhushan
  • 205
  • 2
  • 14
3

calendar.getTime() returns Date object.

but if you just need today date new Date() returns today date as Date object, too.

Calendar example:

Calendar calendar = Calendar.getInstance()
Log.i("My Tag", "calendar getTime -----> " + calendar.getTime());

Output:

My Tag: calendar getTime -----> Wed Dec 05 13:03:43 GMT+03:30 2018

Date Example:

Log.i("My Tag", "new Date -----> " + new Date());

Output:

My Tag: new Date -----> Wed Dec 05 13:05:38 GMT+03:30 2018

as you see both of them have the same output.

Alireza Noorali
  • 3,129
  • 2
  • 33
  • 80
1

Put this in your code:

Date d1 = new Date(year, month, day);
System.out.println("Date : " + d1.getDate() + "/" +d1.getMonth() + "/" + d1.getYear());

you will get the correct date.

Micho
  • 3,929
  • 13
  • 37
  • 40
1

Why you don't use just the calendar?

System.out.println("Date   : " + day + "/" + month + "/" + year);

result 1/1/1900

or you want other format? but dont increment the month with 1

System.out.println("Date   : " + day + "/" + new DateFormatSymbols().getMonths()[month] + "/" + year);

result 1/January/1900

keronconk
  • 359
  • 2
  • 10
0
d1=new Date(year, month, day);
System.out.println("Dt:"+d1.getDate()+"/"+d1.getMonth()+"/"+d1.getYear());
balu b
  • 282
  • 2
  • 7