【发布时间】:2017-12-15 20:58:38
【问题描述】:
大家好,这个问题现在让我发疯了。我的数据库中有一个名为dueDate 的字符串,其值为Jan 18, 2018。我用String dueDate = transactionTasks.get(position).get_transactiontaskpaydet().toString();检索它并将其保存在我的recyclerAdapter 中的字符串中
现在我想将它与当前日期进行比较,如果到期日期在我当前日期之后,它应该以红色显示到期日期。
下面是我的编码。
String dueDate = transactionTasks.get(position).get_transactiontaskpaydet().toString();
Date cdate = new Date();
Date ddate = new Date(dueDate);
if(cdate.after(ddate)){
holder.date.setTextColor(Color.RED);
}
此代码完美运行,但问题是 Date(dueDate); 已弃用。当我使用另一种使用try 和catch 的方法时,我没有得到任何结果。
下面是代码
SimpleDateFormat format = new SimpleDateFormat("E, MMM dd yyyy");
Date curDate = new Date();
try {
Date datedue = format.parse(dueDate);
if(curDate.after(datedue)) {
holder.date.setTextColor(Color.RED);
}
} catch (ParseException e) {
e.printStackTrace();
}
如果我尝试使用Date duedate = null; 在try 块之外创建Date,则会收到错误消息,因为它没有获取try 块内的值。这让我发疯,因为即使它运行良好,我也不应该使用已弃用的代码。
我找到的所有答案都不适合我。我只需要能够将字符串转换为日期,以便将其与当前日期进行比较。谢谢各位
【问题讨论】:
-
使用日历 cal = Calendar.getInstance();而是
-
这只是另一个“我如何用奇怪的语法解析日期”的问题。我已链接到一个通用问答,其中(除其他外)解释了如何创建与您的日期语法匹配的日期格式。 (如果该问答对您不起作用,那么您没有正确阅读!)
标签: java android android-recyclerview