• 项目心得——按照指定的日期/时间创建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 */
  • 相关阅读:
    计划任务和压缩归档
    libevent 源码学习三 —— 基本使用场景和事件流程
    libevent 源码学习二 —— reactor 模式
    libevent 库源码学习
    手动配置固定IP参数vim vim
    软件相关
    写xhttpd服务器时 遇到segmentation fault
    c与c++中输出字符指针和字符串指针的问题
    char * argv[] ,string简析
    传入参数与传出参数
  • 原文地址:https://www.cnblogs.com/baichunyu/p/10948329.html
Copyright © 2020-2023  润新知