8.4-全栈Java笔记:时间处理相关类(下)

上节我们聊到了「时间格式化字符」,实际上它也为我们提供其他的便利。

    比如:获得当前时间是今年的第几天。代码如下:

public class   Test {

    public static void   main(String[] args) {

       SimpleDateFormat s1 = new   SimpleDateFormat("D");

       String daytime = s1.format(new   Date());

       System.out.println(daytime);

    }

}

Calendar日历类

Calendar 类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年、月、日、时、分、秒的展示和计算。

GregorianCalendar 是Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。 

菜鸟雷区

注意月份的表示,一月是0,二月是1,以此类推,12月是11。 因为大多数人习惯于使用单词而不是使用数字来表示月份,这样程序也许更易读,父类Calendar使用常量来表示月份:JANUARY、FEBRUARY等等。

【示例1GregorianCalendar类和Calendar类的使用

package   com.bjsxt.gao;

import   java.util.*; 


public class   TestCanlendar {

    public static void   main(String[] args) {  

       //得到相关日期元素

       GregorianCalendar calendar = new   GregorianCalendar(2999,10,9,22,10,50);

       int   year = calendar.get(Calendar.YEAR);          //打印:1999

       int   month = calendar.get(Calendar.MONTH);     //打印:10

       int   day = calendar.get(Calendar.DAY_OF_MONTH);   //打印:9

       int   day2 = calendar.get(Calendar.DATE);       //打印:9  

//  日:Calendar.DATE和Calendar.DAY_OF_MONTH同义

       int   date = calendar.get(Calendar.DAY_OF_WEEK);   //打印:3  

//  星期几       这里是:1-7.周日是1,周一是2,。。。周六是7

       System.out.println(year);

       System.out.println(month);

       System.out.println(day);

       System.out.println(day2);

       System.out.println(date);

       //设置日期

       GregorianCalendar calendar2 = new   GregorianCalendar();

       calendar2.set(Calendar.YEAR,   2999);

       calendar2.set(Calendar.MONTH,   Calendar.FEBRUARY);  //月份数:0-11

       calendar2.set(Calendar.DATE,   3);

       calendar2.set(Calendar.HOUR_OF_DAY,   10);

       calendar2.set(Calendar.MINUTE,   20);

       calendar2.set(Calendar.SECOND,   23);

       printCalendar (calendar2); 

       //日期计算

       GregorianCalendar calendar3 = new   GregorianCalendar(2999,10,9,22,10,50);

       calendar3.add(Calendar.MONTH,   -7);  //月份减7

       calendar3.add(Calendar.DATE,   7);  //增加7天

       printCalendar (calendar3);

       //日历对象和时间对象转化

       Date d = calendar3.getTime();

       GregorianCalendar calendar4 = new   GregorianCalendar();

       calendar4.setTime(new   Date());     

        long  g =    System.currentTimeMillis();

    }

    static void   printCalendar (Calendar calendar){

       int   year = calendar.get(Calendar.YEAR);

       int   month = calendar.get(Calendar.MONTH)+1;

       int   day = calendar.get(Calendar.DAY_OF_MONTH);

       int   date = calendar.get(Calendar.DAY_OF_WEEK)-1;   //星期几 

       String week = ""+((date==0)?"日":date);   

       int   hour = calendar.get(Calendar.HOUR);

       int   minute = calendar.get(Calendar.MINUTE);

       int   second = calendar.get(Calendar.SECOND);

       System.out.printf("%d年%d月%d日,星期%s   %d:%d:%d\n",year,month,day,week,hour,minute,second);

    }  

8.4-全栈Java笔记:时间处理相关类(下)_第1张图片

示例1  运行效果图





「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。


笔记包含从浅入深的六大部分:

A-Java入门阶段

B-数据库从入门到精通

C-手刃移动前端和Web前端

D-J2EE从了解到实战

E-Java高级框架精解

F-Linux和Hadoop 

你可能感兴趣的:(8.4-全栈Java笔记:时间处理相关类(下))