我有这种格式的日期 -
2015-4-10T11:20:56
我需要验证日期并确保日期不大于当前日期。意思是如果今天是4月10日,那么它不应该是4月11日或更高。
String abc = "2015-4-10T11:20:56";
if(abc is greater than todays date) {
// log an error
}
我该怎么做?
更新: -
我尝试过这样的解析,但它没有用 -
String abc = "2015-4-10T11:20:56";
SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
try {
format.parse(abc);
} catch (ParseException e) {
e.printStackTrace();
}
答案 0 :(得分:1)
您可以使用compareTo
尝试这样做Date date = null;
String str = "2015-4-10T11:20:56";
try {
DateFormat f = new SimpleDateFormat("yyyy-M-d'T'HH:mm:ss");
f.setLenient(false);
date = f.parse(str);
if (date.compareTo(new Date()) > 0) {
// your code
}
} catch (ParseException e) {
e.printStackTrace();
}
答案 1 :(得分:1)
您必须将字符串转换为日期对象。
您可以使用SimpleDateFormat
。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d'T'HH:mm:ss");
Date date = sdf.parse(dateStr);
if (date.compareTo(new Date()) > 0) {
// log an error
}
答案 2 :(得分:1)
这应该适合你:
String abc = "2015-4-10T11:20:56";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss");
Date mydate = df.parse(abc);
Calendar c = Calendar.getInstance();
c.setTime(mydate);
Calendar today = Calendar.getInstance();
if (c.compareTo(today)>=0){
}