Java生成某段时间内的随机时间

上代码: 

 1 import java.text.SimpleDateFormat;
 2 import java.util.Date;
 3 
 4 public class DateUtil {
 5     
 6     /**
 7      * 生成随机时间
 8      * 
 9      * @param beginDate
10      * @param endDate
11      * @return
12      */
13     public static Date randomDate(String beginDate, String endDate) {
14         try {
15             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
16             Date start = format.parse(beginDate);// 构造开始日期
17             Date end = format.parse(endDate);// 构造结束日期
18             // getTime()表示返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
19             if (start.getTime() >= end.getTime()) {
20                 return null;
21             }
22             long date = random(start.getTime(), end.getTime());
23             return new Date(date);
24         } catch (Exception e) {
25             e.printStackTrace();
26         }
27         return null;
28     }
29 
30     public static long random(long begin, long end) {
31         long rtn = begin + (long) (Math.random() * (end - begin));
32         // 如果返回的是开始时间和结束时间,则递归调用本函数查找随机值
33         if (rtn == begin || rtn == end) {
34             return random(begin, end);
35         }
36         return rtn;
37     }
38     
39     public static void main(String[] args) {
40         Date randomDate = randomDate("2010-09-20", "2010-09-22");
41         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
42         String result = format.format(randomDate);
43         System.out.println(result);
44     }
45 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值