如何从日期选择器获取毫秒?

在我的项目中,我在sqllite数据库中保存毫秒,默认情况下我正在保存

System.currentTimeMillis() 

在数据库中,但是有一个选项供用户从日期选择器中选择以前的日期? 但是当用户从日期选择器中选择之前或之后的几天时,我应该保存什么? 我怎样才能将这一天作为一个长(毫秒)的格式?

创建一个Calender实例并设置所需的日期。 然后调用calendar.getTimeInMillis(); 。 有关详细信息,请参阅此前SO问题的答案。

编辑要设置日历日期,您可以使用以下内容:

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

有关更多信息,请参阅Calendar类。

当我遇到这个答案时,我正在为javase场景寻找类似的解决方案。 我对Angelo的答案进行了一些修改,让我自己的案例工作,它给了我正是我想要的东西。 为了让事情更有趣,我创建了一个可以重用的方法。

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

有人可能会觉得这很有用