我有一个日期字符串,“2016-6-26”,我想与当前日期进行比较,如果我的日期是等于或大于,那么我想要做的当前日期做一些任务。 我已经实现了下面的代码,但它总是给我有效的我选择的任何日期。Date.after不工作对我
String[] parts = date.split("-"); //where date is 2016-6-26
String part1 = parts[0]; //2016
String part2 = parts[1]; //6
String part3 = parts[2]; //26
String valid_until =part3+"/"+part2+"/"+part1; //"26/06/2016"; // "28/02/2016";
Log.d("soh_valid", valid_until);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date strDate = null;
try {
strDate = sdf.parse(valid_until);
} catch (ParseException e) {
e.printStackTrace();
}
if (new Date().after(strDate)) {
Log.d("new_date", String.valueOf(new Date()));
Toast.makeText(VASActivity.this,"valid",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(VASActivity.this,"Not valid",Toast.LENGTH_SHORT).show();
}
我在做什么错在这里? 有什么建议吗?
解析是否工作?因为原始字符串中的“6”不会像您所期望的那样奇迹般地变成“06”。 – f1sh
与你的问题没有关系,但为什么不使用'new SimpleDateFormat(“yyyy-MM-dd”);'而不是分割和重新格式化? –
@ f1sh我加月份0,但它不工作 –