我有一個日期字符串,「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,但它不工作 –