java基础十-时间类型

目录

 

1 时间类结构体系

2 Date类及常用方法

3 Calendar与GregorianCalendar

4 DateFormat与SimpleDateFormat

5 综合案例:简单日历


1 时间类结构体系

 

其中java.util.Date是核心类,随着jdk的发展,其功能被削弱,由别的类分担。

2 Date类及常用方法

构造方法:

public Date(long date) {

    fastTime = date;

}

含义:从1970-1-1 00:00:00开始加fastTime毫秒后对应的时间。

常用方法

(1)compareTo(Date date):比较两个时间前后。

如果大于参数时间,返回1;如果等于返回0;如果小于,返回-1

 

(2)after(Date date):判断是否在某个时间后。

如果大于参数时间,返回true;如果小于等于参数时间,返回false

 

(3)getTime():返回自 1970 年 1 月 1 日 00:00:00 以来此 Date 对象表示的毫秒数。

 

3 Calendar与GregorianCalendar

Calendar字段:1~12月英文字段,周日到周一的英文字段

常用方法:

(1)设置日历:g.set(year, month, date, hourOfDay, minute);

setTime(Date date),将某个时间转化成日历

 

(2)日期计算:add(Calendar.MONTH/Calendar.YEAR等, amount);

 

4 DateFormat与SimpleDateFormat

构造方法:

public SimpleDateFormat(String pattern){

    this(pattern, Locale.getDefault(Locale.Category.FORMAT));

}

 

常用方法:

(1)format(Date d):将某个时间解析成字符串输出

DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

Date d = new Date(12321314323L);

String str = df.format(d);

System.out.println(str);//1970-05-23 10:35:14

 

(2)parse(String str):将某个字串转换成时间

String str2 = "1977-7-7";

DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");

try {

    Date d2 = df2.parse(str2);

    System.out.println(d2);

} catch (Exception e) {

    e.printStackTrace();

}

 

5 综合案例:简单日历

public class Test{

    public static void main(String[] args) {

        System.out.println("请输入日期(按照格式:2030-3-10):");

        Scanner scanner = new Scanner(System.in);

        String str_date = scanner.nextLine();



        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

        try {

            Date date = format.parse(str_date);

            Calendar calendar = new GregorianCalendar();

            calendar.setTime(date);//将某个时间类转化成日历类

            int day = calendar.get(Calendar.DATE);//得到输入时间所在的几号

            calendar.set(Calendar.DATE, 1);//将该日历设置为当月1号



            //得到当月有多少天

            int maxDate = calendar.getActualMaximum(Calendar.DATE);

            System.out.println("日\t一\t二\t三\t四\t五\t六");



            for(int i=1;i<calendar.get(Calendar.DAY_OF_WEEK);i++){

                System.out.print('\t');

            }



            for(int i=1;i<=maxDate;i++){

                if(i==day){

                System.out.print("*");

            }

            System.out.print(i+"\t");

            //得到当前日历是星期几

            int week = calendar.get(Calendar.DAY_OF_WEEK);

            if(week == Calendar.SATURDAY){

            System.out.print('\n');

        }

        calendar.add(Calendar.DATE, 1);//将当前日历加一天

        }



        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值