项目心得——按照指定的日期/时间创建Date对象

项目心得——按照指定的日期/时间创建Date对象

  有时,在做项目中,需要获得指定日期的Date对象,这个指定的日期或者时间可能不是当前的时间。下面讲解两种获取指定日期/时间的Date对象的方法

 1 package cc.bcy;
 2 import java.text.DateFormat;
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5 import java.util.Calendar;
 6 import java.util.Date;
 7 import java.util.GregorianCalendar;
 8 public class DateTest 
 9 {
10     public static void main(String[] args) throws ParseException 
11     {
12         /*第一种方法*/
13         // 获得2009年06月01日 的Date对象
14         DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
15         Date myDate1 = dateFormat1.parse("2009-06-01");
16         System.out.println(myDate1);
17         // 获得2010年9月13日22点36分01秒 的Date对象
18         DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
19         Date myDate2 = dateFormat2.parse("2010-09-13 22:36:01");
20         System.out.println(myDate2);
21         System.out.println();
22         
23         /*第二种方法*/
24         //获取2014年2月11日的Date对象
25         Calendar myCalendar = new GregorianCalendar(2014, 2, 11);
26         Date myDate3 = myCalendar.getTime();
27         System.out.println(myDate3);
28         //获取2014年2月11日 22:36:01的Date对象
29         Calendar myCalendar2 = new GregorianCalendar(2014, 2, 11,22,36,01);
30         Date myDate4 = myCalendar2.getTime();
31         System.out.println(myDate4);
32     }
33 }

  获取当前时间的Date对象:

 1 package cc.bcy;
 2 import java.text.DateFormat;
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5 import java.util.Calendar;
 6 import java.util.Date;
 7 import java.util.GregorianCalendar;
 8 public class DateTest 
 9 {
10     public static void main(String[] args) throws ParseException 
11     {
12         Date d1 = new Date();        //当前时间
13         System.out.println(d1);
14     }//Thu May 30 10:50:04 CST 2019
15 }

  获取指定时间戳的Date对象:

 1 package cc.bcy;
 2 import java.text.DateFormat;
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5 import java.util.Calendar;
 6 import java.util.Date;
 7 import java.util.GregorianCalendar;
 8 public class DateTest 
 9 {
10     public static void main(String[] args) throws ParseException 
11     {
12         // 从1970年1月1日 早上8点0分0秒 开始经历的毫秒数
13         Date d2 = new Date(5000);
14         System.out.println("从1970年1月1日 早上8点0分0秒 开始经历了5秒的时间");
15         System.out.println(d2);
16     }
17 }
18 /*
19 从1970年1月1日 早上8点0分0秒 开始经历了5秒的时间
20 Thu Jan 01 08:00:05 CST 1970
21  */

  获取当前时间的时间戳:

 1 package cc.bcy;
 2 import java.text.DateFormat;
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5 import java.util.Calendar;
 6 import java.util.Date;
 7 import java.util.GregorianCalendar;
 8 public class DateTest 
 9 {
10     public static void main(String[] args) throws ParseException 
11     {
12         Date now = new Date();
13         System.out.println("当前时间的时间戳为:"+now.getTime());
14         System.out.println("当前时间的时间戳为:"+System.currentTimeMillis());
15     }
16 }
17 //当前时间的时间戳为:1559185132787
18 //当前时间的时间戳为:1559185132787

  把当前时间格式化为字符串:

 1 package cc.bcy;
 2 import java.text.*;
 3 import java.util.*;
 4 
 5 public class DateTest 
 6 {
 7     public static void main(String[] args) throws ParseException 
 8     {
 9         SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
10         Date d= new Date();
11         String str = sdf.format(d);
12         System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+str);
13         
14         SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd" );
15         Date d1= new Date();
16         String str1 = sdf1.format(d1);
17         System.out.println("当前时间通过 yyyy-MM-dd 格式化后的输出: "+str1);
18     }
19 }
20 /*
21 当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: 2019-05-30 11:03:15 267
22 当前时间通过 yyyy-MM-dd 格式化后的输出: 2019-05-30
23 */

  Calendar与Date进行转换:

 1 package cc.bcy;
 2 import java.text.*;
 3 import java.util.*;
 4 
 5 public class DateTest 
 6 {
 7     public static void main(String[] args) throws ParseException 
 8     {
 9         //采用单例模式获取日历对象Calendar.getInstance();
10         Calendar c = Calendar.getInstance();
11         //通过日历对象得到日期对象
12         Date date = c.getTime();
13         
14         Date date2 = new Date(0);
15         c.setTime(date2); //把这个日历,调成日期 : 1970.1.1 08:00:00
16     }
17 }

  Calendar的简单操作:

  add方法,在原日期上增加年/月/日
  set方法,直接设置年/月/日

 1 package cc.bcy;
 2 import java.text.*;
 3 import java.util.*;
 4 
 5 public class DateTest 
 6 {
 7     
 8     public static void main(String[] args) throws ParseException 
 9     {
10         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
11         Calendar c = Calendar.getInstance();
12         Date now = c.getTime();
13         // 当前日期
14         System.out.println("当前日期:            " + sdf.format(now));
15  
16         // 下个月的今天
17         c.add(Calendar.MONTH, 1);
18         System.out.println("下个月的今天:    " +sdf.format(c.getTime()));
19  
20         // 去年的今天
21         c.setTime(now);
22         c.add(Calendar.YEAR, -1);
23         System.out.println("去年的今天:        " +sdf.format(c.getTime()));
24  
25         // 上个月的第三天
26         c.setTime(now);
27         c.add(Calendar.MONTH, -1);
28         c.set(Calendar.DATE, 3);
29         System.out.println("上个月的第三天:    " +sdf.format(c.getTime()));
30     }
31 }
32 /*
33 当前日期:        2019-05-30 11:14:41
34 下个月的今天:    2019-06-30 11:14:41
35 去年的今天:        2018-05-30 11:14:41
36 上个月的第三天:    2019-04-03 11:14:41
37 */
posted @ 2019-05-30 10:55  白春雨  阅读(21106)  评论(0编辑  收藏  举报