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,654
  • 9
  • 37
  • 63

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
AggelosK
  • 4,313
  • 2
  • 32
  • 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