借助随机数,创建一个从1995.1.1 00:00:00 到 1995.12.31 23:59:59 之间的随机日期
运用知识点:字符串与Date对象的互相转换,随机数的运用,Date对象的格式化输出。
1 package date;
2
3 import java.util.Date;
4 import java.text.ParseException;//字符串转Date对象
5 import java.text.SimpleDateFormat;//日期格式
6
7 public class TestDate {
8 public static void main(String[] args) {
9 Date d1 = new Date();
10 Date d2 = new Date();
11 SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");//创建sdf这一个日期格式
12 String str1="1995.1.1 00:00:00";
13 String str2="1995.12.31 23:59:59";
14 try {
15 d1=sdf.parse(str1);//字符串转Date对象
16 } catch (ParseException e1) {
17 // TODO Auto-generated catch block
18 e1.printStackTrace();
19 }
20 try {
21 d2=sdf.parse(str2);//字符串转Date对象
22 } catch (ParseException e) {
23 // TODO Auto-generated catch block
24 e.printStackTrace();
25 }
26 System.out.println("从 "+d1.toString()+" 开始"+"\n到 "+d2.toString()+" 为止");
27 System.out.print("相差多少毫秒:");
28 System.out.println(d2.getTime()-d1.getTime());
29
30 long x1=d2.getTime()-d1.getTime();//getTime()得到的是long类型
31 long x2=Math.round(Math.random()*(d2.getTime()-d1.getTime()));
32
33 System.out.print("取其中的随机一个:");
34 System.out.println(x2);
35
36 Date d=new Date(x2+d1.getTime());//加上开始时间d1本身的时间
37 String str=sdf.format(d);//Date对象转字符串
38 System.out.println("随机生成的日期是:"+str);
39 System.out.println("把整段时间看成'1',随机生成的日期在这段时间的位置:"+String.format("%.2f", (double)x2/x1));
40
41
42 }
43 }
结果演示: