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

时间:2015-02-16 11:39:18

标签: android date datetime java-time android-date

我正在尝试解析一个字符串到目前为止,然后在那之后得到日期,时间和时间从毫秒开始的分钟。我正在解析这个字符串到目前为止: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,正如您所看到的那样,今天的日子太远了,是16日,即将到期的日期是3月1日。

这里有什么问题?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

尝试这样做以获取星期几

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

答案 2 :(得分:0)

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

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