• 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);
        }
  • 相关阅读:
    二项分布 正太分布 关系 隶莫佛-拉普拉斯定理的推广 列维-林德伯格定理
    lint (software)
    eslint
    Lazy freeing of keys 对数据的额异步 同步操作 Redis 4.0 微信小程序
    XML-RPC JSON-RPC RPC是实现思路
    Multitier architecture
    Messaging Patterns for Event-Driven Microservices
    替换模板视频图片的原理
    Understanding When to use RabbitMQ or Apache Kafka Kafka RabbitMQ 性能对比
    RabbitMQ Connector
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/15268431.html
Copyright © 2020-2023  润新知