Como obter milissegundos a partir de um selecionador de data?

No meu projeto eu estou salvando milissegundos em um database sqllite, por padrão estou salvando

System.currentTimeMillis() 

no database, mas há uma opção para o usuário selecionar a data anterior a partir de um selecionador de data? Mas o que devo salvar, então, quando o usuário seleciona dias anteriores ou posteriores ao selecionador de data? Como posso obter esse dia como um formato longo (milissegundos)?

Crie uma instância do Calender e defina a data desejada. Em seguida, chame calendar.getTimeInMillis(); . Veja a resposta desta pergunta SO para mais informações.

EDIT Para definir a data do calendar, você pode usar algo assim:

 //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()); 

Veja a class Calendar para mais informações.

Eu estava procurando uma solução semelhante para um cenário javase quando me deparei com essa resposta. Eu fiz uma pequena modificação na resposta de Angelo para fazer meu próprio caso funcionar, e isso me deu exatamente o que eu estava procurando. Para tornar as coisas um pouco mais interessantes, criei um método que pode ser reutilizado.

 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; } } 

Alguém pode achar isso útil