我已经像这样输入了更早的时间段,2012-01-18-11-42-24 在数据库中,所以如何将这个时间转换为毫秒,我很困惑,我尝试了很多方法但无法得到这个时间以毫秒为单位。
我的最终目标是找出时间段 2012-04-18-11-42-24 时间和当前时间。请给出这样的想法,如何?
请查看DateFormat和SimpleDateFormat类。他们有一个parse(String string)
方法可以从它的表示中给你一个Date
对象String
。然后,您可以使用getTime()
方法以毫秒为单位获取时间并进行比较。
尝试这个,
public long convertDateToMillis(int day, int month, int year, int hour, int minute)
{
Calendar c = Calendar.getInstance();
c.set(year, month, day, hour, minute, 00);
return c.getTimeInMillis();
}
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date c_date=new Date(); //current date
Date saved_date=(Date)outputFormat.parse("2012-01-18-11-42-24"); //saved date
long diffInMs = c_date.getTime() -saved_date.getTime(); //diff between two in milisecond
long diffInSec = TimeUnit.MILLISECONDS.toSeconds(diffInMs); //millisecond to second convertion
您可以使用与 saved_date 相同的第二个日期而不是当前日期,并且以相同的方式查找两个日期之间的时间段
使用此代码以毫秒为单位获取时间
Date date1 = new Date(datepicker.getYear() - 1900, datepicker.getMonth(), datepicker.getDayOfMonth(), timepicker.getCurrentHour()*3600000, timepicker.getCurrentMinute()*60000);
Log.i(TAG, date1.toString());