往事风中葬

导航

JAVA 日期和时间详解

1.简述

在完成项目时,难免要与日常生活接触,其中必不可少的一部分就是"时间"的应用,在java中包含时间的类有许多个,

例如,java.util.Data,,java.sql.Data等事件类型,接下来就详细的讲述一下各种时间类型的应用。

2.时间类型

2.1 System类中的currentTimeMillis( )

返回当前时间与1970年1月1日0时0点0分0秒之间以毫秒为单位的时间差。

1 public void test1() {
2         long millis = System.currentTimeMillis();
3         System.out.println(millis);//1649421505146
4     }

2.2 java.util.Date类 与其子类  java.sql.Date类 和 java.sql.Time类 和 java.sql.TimeStamp

java.sql.Time 和 java.sql.Date 都没有不接受任何参数的构造函数, 分别接收的是 Long型的 Time 和 Date .

    

 1 public void test2() {
 2         java.util.Date juDate = new java.util.Date(0);
 3         System.out.println(juDate);//Thu Jan 01 08:00:00 CST 1970
 4         
 5         java.util.Date juDate1 = new java.util.Date();
 6         System.out.println(juDate1);//Fri Apr 08 20:56:59 CST 2022
 7         
 8         java.sql.Date jsDate = new Date(0);
 9         System.out.println(jsDate);//1970-01-01
10         
11         java.sql.Date jsDate2 = new Date(new java.util.Date().getTime());
12         System.out.println(jsDate2);//2022-04-08
13 
14         java.sql.Time jsTime = new Time(0);
15         System.out.println(jsTime);//08:00:00
16         
17         java.sql.Time jsTime1 = new Time(new java.util.Date().getTime());
18         System.out.println(jsTime1);//20:56:59
19         
20         java.sql.Timestamp jsTimestamp = new Timestamp(0);
21         System.out.println(jsTimestamp);//1970-01-01 08:00:00.0
22         
23         java.sql.Timestamp jsTimestamp1 = new Timestamp(new java.util.Date().getTime());
24         System.out.println(jsTimestamp1);//2022-04-08 20:56:59.379
25     }

2.3 java.text.SimpleDateFormat

SimpleDateFormat实例化:

1 public void test3() {
2         java.util.Date date = new java.util.Date();
3         SimpleDateFormat sDateFormat1 = new SimpleDateFormat();//22-4-8 下午9:01
4         SimpleDateFormat sDateFormat2=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//2022年04月08日 21时01分37秒
5         SimpleDateFormat sDateFormat3=new SimpleDateFormat("yy/MM/dd HH:mm"); //22/04/08 21:01
6         SimpleDateFormat sDateFormat4=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()2022-04-08 21:01:37
7         SimpleDateFormat sDateFormat5=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");//2022年04月08日 21时01分37秒 星期五 
8         System.out.println(sDateFormat1.format(date));
9     }

Date模式 与 SimpleDateFormat 进行转化

 1 SimpleDateFormat构造函数:
 2 public SimpleDateFormat(String pattern);//构造方法,pattern意思为模板
 3 public Date parse(String source)throws ParseException //转换-->此时取得的是全部时间数。
 4 
 5 public final String Format(Date date) //格式化-->将时间重新格式化成字符串显示
 6 public void test4() {
 7         String strDate = "2008-10-19 10:11:30.345" ;  
 8         // 准备第一个模板,从字符串中提取出日期数字  
 9         String pat1 = "yyyy-MM-dd HH:mm:ss.SSS" ;  
10         // 准备第二个模板,将提取后的日期数字变为指定的格式  
11         String pat2 = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒" ;  
12         SimpleDateFormat sdf1 = new SimpleDateFormat(pat1) ;        // 实例化模板对象  
13         SimpleDateFormat sdf2 = new SimpleDateFormat(pat2) ;        // 实例化模板对象  
14         java.util.Date d1 = null ;  
15         try{  
16             d1 = sdf1.parse(strDate);   // 将给定的字符串中的日期提取出来 ,反转换,结果为Sun Oct 19 10:11:30 CST 2008
17             System.out.println(d1);
18         }catch(Exception e){            // 如果提供的字符串格式有错误,则进行异常处理  
19             e.printStackTrace() ;       // 打印异常信息  
20         }  
21     }

2.4 java.util.Calender

 1 // 实例化
 2         // 方式一:调用其静态方法 instance()
 3         Calendar calendar = Calendar.getInstance();
 4         System.out.println(calendar);
 5         System.out.println(calendar.getClass());// class java.util.GregorianCalendar
 6         /*[time=1649430810648,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,
 7         dstSavings=0,useDaylight=false,transitions=19,lastRule=null],
 8         firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=3,WEEK_OF_YEAR=15,WEEK_OF_MONTH=2,DAY_OF_MONTH=8,
 9         DAY_OF_YEAR=98,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=11,
10         HOUR_OF_DAY=23,MINUTE=13,SECOND=30,MILLISECOND=648,ZONE_OFFSET=28800000,DST_OFFSET=0]*/
11 
12         // 方式二:创建其子类(GregorianCalendar)对象。
13         GregorianCalendar gregorianCalendar = new GregorianCalendar();
14         System.out.println(gregorianCalendar);
15         // 常用方法
16         // get()
17         int day = calendar.get(Calendar.DAY_OF_MONTH);
18         System.out.println(day);// 4月的第8天
19         System.out.println(calendar.get(Calendar.DAY_OF_YEAR));// 2022年的第98天
20         // set()
21         calendar.set(Calendar.DAY_OF_YEAR, 32);// 日历从0月开始计算,输出为1月,意思为第二月
22         System.out.println(calendar.get(Calendar.MONTH));
23         // add()
24         calendar.add(Calendar.DAY_OF_YEAR, 55);// 在当前日期添加55天
25         System.out.println(calendar.get(Calendar.MONTH));
26         // getTime()
27         java.util.Date date = calendar.getTime();
28         System.out.println(date);// Mon Mar 28 23:13:30 CST 2022
29         // setTime()
30         calendar.setTime(new java.util.Date());

posted on 2022-04-09 16:26  往事风中葬  阅读(285)  评论(0编辑  收藏  举报