2019-12-07 20:13:04
如果这个日期是今天,我需要我的可见性。
try {
String dtStart = sales.getDate();
SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
Date date = format.parse(dtStart);
Calendar now = Calendar.getInstance();
Date today = now.getTime();
if (date == today){
holder.delete.setVisibility(View.VISIBLE);
}else {
holder.delete.setVisibility(View.INVISIBLE);
}
} catch (ParseException e) {
e.printStackTrace();
}
答案 0 :(得分:2)
使用java-8日期时间API,首先您的格式化程序错误的月份应以大写字母MM
表示,并使用DateTimeFormatter而不是旧式SimpleDateFormat
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
然后使用格式化程序将输入字符串解析为LocalDateTime
String date = "2019-12-07 20:13:04";
LocalDateTime dateTime = LocalDateTime.parse(date,formatter);
最后使用equals
比较输入日期和当前日期,here是在android上获取java-8日期时间API的信息
dateTime.toLocalDate().equals(LocalDate.now()); //true
答案 1 :(得分:0)
如果您已经将日期字符串转换为日期,则可以将Date
对象转换为Calendar
对象,然后比较年,月和日。
示例实现:
private boolean isToday(Date date) {
Calendar calendar = Calendar.getInstance();
Calendar toCompare = Calendar.getInstance();
toCompare.setTimeInMillis(date.getTime());
return calendar.get(Calendar.YEAR) == toCompare.get(Calendar.YEAR)
&& calendar.get(Calendar.MONTH) == toCompare.get(Calendar.MONTH)
&& calendar.get(Calendar.DAY_OF_MONTH) == toCompare.get(Calendar.DAY_OF_MONTH);
}
或者,您可以将Date
和Calendar
转换为毫秒,并与今天的毫秒进行比较。
示例实现:
private boolean isToday2(Date dateToCheck) {
Calendar calendar = Calendar.getInstance();
// you have to set calendar object to 00:00:00
calendar.set(Calendar.HOUR, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
// milliseconds of 1 day = 86400000
return dateToCheck.getTime() - calendar.getTimeInMillis() < 86400000;
}
这两个解决方案不能正确处理本地化时间。因此,请谨慎使用。
答案 2 :(得分:0)
您可以使用DateUtils.isToday
方法来检查日期是否是今天:
try {
String dtStart = sales.getDate();
SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
Date date = format.parse(dtStart);
boolean isToday = DateUtils.isToday(date.getTime());
if (isToday){
holder.delete.setVisibility(View.VISIBLE);
}else {
holder.delete.setVisibility(View.INVISIBLE);
}
} catch (ParseException e) {
e.printStackTrace();
}
答案 3 :(得分:0)
我们可以如下使用Java 8 Date-Time API:
LocalDate dt2= LocalDate.of(2019,10,20);
String dtStart= dt2.format(DateTimeFormatter.ISO_DATE);
LocalDate currentDt= LocalDate.now();
if(currentDt.format(DateTimeFormatter.ISO_DATE).equals(dtStart)) {
// logic here
}else {
//logic here
}