3

In my project I am saving milliseconds in a sqllite databse, by default I am saving

System.currentTimeMillis()

in the database, but there is an option for the user to select previous date from a date picker? But what sould I save then when user selects a previous or up comming days from the date picker? How can I get that day as a long(milliseconds) format?

Reyjohn
  • 2,364
  • 8
  • 35
  • 59

2 Answers2

13

Create a Calender instance and set the date you want. Then call calendar.getTimeInMillis();. See the answer of this previous SO question for more information.

EDIT To set the calendar date you can use something like this:

//Lets suppose you have a DatePicker instance called datePicker
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, datePicker.getDayOfMonth());
cal.set(Calendar.MONTH, datePicker.getMonth());
cal.set(Calendar.YEAR, datePicker.getYear());

See the Calendar class for more information.

Community
  • 1
  • 1
Angelo
  • 4,288
  • 2
  • 29
  • 37
1

I was looking for a similar solution for a javase scenario when I came across this answer. I made a little modification to Angelo's answer to make my own case work, and it gave me exactly what I was looking for. To make things a little more interesting, I created a method that can be reused.

class Controller {

    public static Calendar cal = Calendar.getInstance();

    public static long getEpoch_fromDatePicker( DatePicker datePicker ) {

        Controller.cal.set(Calendar.DAY_OF_MONTH, datePicker.getValue().getDayOfMonth() );
        Controller.cal.set(Calendar.MONTH, datePicker.getValue().getMonthValue() );
        Controller.cal.set(Calendar.YEAR, datePicker.getValue().getYear() );

        return Controller.cal.getTimeInMillis() /1000;
    }
}

Someone might find this useful

Oniya Daniel
  • 359
  • 6
  • 15