Java学习-日期

扫码查看

借助随机数,创建一个从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 }

结果演示:

12-20 20:17
查看更多