我正在尝试解析一个字符串到目前为止,然后在那之后得到日期,时间和时间从毫秒开始的分钟。我正在解析这个字符串到目前为止: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日。
这里有什么问题?
答案 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));