将日期毫秒解析为天、小时、分钟

Parse date milliseconds to days,hours,minutes

我试图解析一个字符串到日期,然后从毫秒中获取天数、小时数和分钟数。到目前为止,我正在解析此字符串:2015-03-01 00:00:00,并且我正在使用此代码进行处理:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date inputDate = dateFormat.parse(data.get(position).getValidTo());
long ms = inputDate.getTime();

现在,在这之后我试图通过这样做获得天数、小时数和分钟数:

mins=(ms/(1000*60))%60;
hours=(ms/(1000*60*60))%24;
days=(ms/(1000*60*60*24));

当我显示它时,我得到了这个:

16494Days : 22 hours : 58 minutes,你看今天是2月16日,过期时间是3月1日。

这里有什么问题?

试试这个来获取星期几

Calendar c = Calendar.getInstance();
c.setTime(yourDate);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

获取日历以获取这些信息:

    Calendar c = Calendar.getInstance();
    c.setTime(inputDate );
    days =c.get(Calendar.DAY_OF_MONTH);
    hours= c.get(Calendar.HOUR_OF_DAY);
    mins = c.get(Calendar.MINUTE);

实际上你需要得到当前日期和输入日期之间的差异。 之后你可以像这样执行这些计算

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date inputDate = dateFormat.parse(data.get(position).getValidTo());
long ms = inputDate.getTime();

long currentMilliSeconds=System.currentTimeMillis();

ms = ms - currentMilliSeconds;

mins=(ms/(1000*60))%60;
hours=(ms/(1000*60*60))%24;
days=(ms/(1000*60*60*24));