博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java随机范围内的日期
阅读量:6412 次
发布时间:2019-06-23

本文共 1857 字,大约阅读时间需要 6 分钟。

使用了最新的java8的java.time类,并提供了LocalDateTime和java.util.Date之间的转换。

使用方法:

randomLocalDateTime(-3,3) : 取距离今天前后2天的日期。如果今天为7月12日,则日期随机范围为7月10日~7月14日

测试方法 :

@org.junit.Test    public void testRandomDateTime(){        for(int i=0;i<10;i++){            System.out.println(randomLocalDateTime(-3,3).format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss")));        }    }

测试结果:

 

源程序:

/**     * 取范围日期的随机日期时间,不含边界     * @param startDay     * @param endDay     * @return     */    public LocalDateTime randomLocalDateTime(int startDay,int endDay){                int plusMinus = 1;        if(startDay < 0 && endDay > 0){             plusMinus = Math.random()>0.5?1:-1;             if(plusMinus>0){                 startDay = 0;             }else{                endDay = Math.abs(startDay);                startDay = 0;             }        }else if(startDay < 0 && endDay < 0){            plusMinus = -1;                        //两个数交换            startDay = startDay + endDay;            endDay  = startDay - endDay;            startDay = startDay -endDay;                        //取绝对值            startDay = Math.abs(startDay);            endDay = Math.abs(endDay);                    }                LocalDate day = LocalDate.now().plusDays(plusMinus * RandomUtils.nextInt(startDay,endDay));        int hour = RandomUtils.nextInt(1,24);        int minute = RandomUtils.nextInt(0,60);        int second = RandomUtils.nextInt(0,60);        LocalTime time = LocalTime.of(hour, minute, second);        return LocalDateTime.of(day, time);    }        /**     * 取范围日期的随机日期时间,不含边界     * @param startDay     * @param endDay     * @return     */    public Date randomDateTime(int startDay,int endDay){        LocalDateTime ldt = randomLocalDateTime(startDay,endDay);        ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault());         return Date.from(zdt.toInstant());    }

 

 

 

转载地址:http://ztdra.baihongyu.com/

你可能感兴趣的文章
袋鼠云服务案例系列 | 从DB2到MySQL,某传统金融平台的互联网转型之路
查看>>
RealServer配置脚本
查看>>
九月份技术指标 华为交换机的简单配置
查看>>
马哥linux作业--第八周
查看>>
dubbo01
查看>>
python 写json格式字符串到文件
查看>>
分布式文件系统MogileFS
查看>>
电力线通信载波模块
查看>>
linux vim详解
查看>>
Java23种设计模式案例:策略模式(strategy)
查看>>
XML解析之DOM4J
查看>>
图解微服务架构演进
查看>>
SQL PATINDEX 详解
查看>>
一些常用的网络命令
查看>>
CSP -- 运营商内容劫持(广告)的终结者
查看>>
DIV+CSS命名规范有助于SEO
查看>>
js生成二维码
查看>>
C指针练习
查看>>
web项目buildPath与lib的区别
查看>>
php对redis的set(集合)操作
查看>>