zoukankan      html  css  js  c++  java
  • Java 日期验证和获取

     /**
         * 日期格式 yyyyMMdd
         */
        private static final String DATEFORMAT = "([0-9]{4})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])";
    
    
    
    /**
         * 
         * isDate 判断是否是有效的日期
         * @param date 日期字符串
         * @return 是否
         */
        public static boolean isDate(String date) {
            
            Pattern pattern = Pattern.compile(DATEFORMAT);
            Matcher matcher = pattern.matcher(date);
            if (matcher.matches()) {
                pattern = Pattern.compile(DATE);
                matcher = pattern.matcher(date);
                if (matcher.matches()) {
                    int y = Integer.valueOf(matcher.group(1));
                    int m = Integer.valueOf(matcher.group(2));
                    int d = Integer.valueOf(matcher.group(3));
                    if (d > 28) {
                        Calendar c = Calendar.getInstance();
                        c.set(y, m - 1, 1);
                        // 每个月的最大天数
                        int lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
                        return (lastDay >= d);
                    }
                }
                return true;
            }
            return false;
        }
    private static final String DATEFORMAT = "([0-9]{4})(0[1-9]|1[012])";
        private static final String DATE = "(\d{4})(\d{2})";
    
    
    
     /**
         * 返回月份最后一天
         *
         * @param month  日期 yyyyMM
         * @param amount 增加月份
         * @return String
         */
        public static String addMonth(String month, int amount) {
            Date result = null;
            Pattern pattern = Pattern.compile(DATEFORMAT);
            Matcher matcher = pattern.matcher(month);
            if (matcher.matches()) {
                pattern = Pattern.compile(DATE);
                matcher = pattern.matcher(month);
                if (matcher.matches()) {
                    int y = Integer.parseInt(matcher.group(1));
                    int m = Integer.parseInt(matcher.group(2));
                    Calendar c = Calendar.getInstance();
                    c.set(y, (m - 1 + amount), 1);
                    // 每个月的最大天数
                    int lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
                    c.set(Calendar.DAY_OF_MONTH, lastDay);
                    result = c.getTime();
                }
            }
            SimpleDateFormat sdfDay = new SimpleDateFormat("yyyyMMdd");
            return sdfDay.format(result);
        }
  • 相关阅读:
    Nginx 负载均衡
    wordpress 页面显示指定分类文章
    Linux 下 wordpress 无法安装插件
    在 Linux 上安装配置 BitTorrent Sync [转]
    nagios 配置 check_traffic 流量监控模块(Server 端)
    install nagios pnp4nagios on centos 6
    bat 脚本处理windows 文件
    Mac 下重新安装配置ibm Lotus 邮箱
    Domino 邮箱服务器接收不存在的邮箱账号的邮件
    Linux 下统计Apache每分钟的并发数
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/15268431.html
Copyright © 2011-2022 走看看