有个学弟问了一道题,然后自己写了一下,对于输入的字符串是否是合法日期没有做校验,下面是判断输入日期是否小于当前日期的代码实现: 要求:当日期字符串小于当前日期,返回true;当日期字符串大于当前日期,返回false
package com.wonders;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;/** * 日期公共处理类 * @author Liyongyong * */public class DateUtils { /** * 判断是否是过去的日期 * @param str输入的日期 * @return * @return */ public static boolean isPastDate(String str){ boolean flag = false; Date nowDate = new Date(); Date pastDate = null; //格式化日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.CHINA); //在日期字符串非空时执行 if (str != null && !"".equals(str)) { try { //将字符串转为日期格式,如果此处字符串为非合法日期就会抛出异常。 pastDate = sdf.parse(str); //调用Date里面的before方法来做判断 flag = pastDate.before(nowDate); if (flag) { System.out.PRintln("该日期早于今日"); }else { System.out.println("该日期晚于今日"); } } catch (ParseException e) { e.printStackTrace(); } }else { System.out.println("日期参数不可为空"); } return flag; } public static void main(String[] args) { System.out.print(DateUtils.isPastDate("2017/02/20"));//该日期晚于今日false System.out.print(DateUtils.isPastDate("2017/02/10"));//该日期早于今日true }}新闻热点
疑难解答