Calendar和异常处理

这篇博客介绍了Java中的日期类型,包括Date、Calendar及其转换,并展示了如何使用SimpleDateFormat进行日期格式化和解析。此外,还讲解了Calendar的set和get方法的使用技巧以及异常处理机制,包括try-catch-finally和throws关键字的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**
java日期类型
日期的表现格式

  1. Date类型的时间: Date date=new Date();
  2. long类型的时间: 系统从1970到当前的一个毫秒值
  3. Calendar类型的时间
    抽象类,不可以被实例化,只能实例化子类对象
    使用静态工厂获取Calender对象

日期的格式化和解析

  • 使用simpleDateFormat:实现日期转字符串(格式化),以及字符串转为日期(解析)

Calendar常用方法:

  1. public int get(int field); 返回给定日历字段的值

  2. public abstract void add(int field,int amount);//根据日历的规则对指定的时间字段进行添加或删除给定的值

  3. public Date getTime(); 将Calendar类型转化为Date类型

  4. public final void set(int year,int month,int date);设置指定的日期,注意里面的参数类型是int类型,不是String类型,月份是从零开始的,即0-11

    **


import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


public class CalendarDemo01 {
    public static void main(String[] args) {
        Calendar c1=Calendar.getInstance();
        //System.out.println(c1);//格式化和解析
        //SimpleDateFormat将Date类型的日期,转化为String

        // 将Calendar转为Date
        Date d=c1.getTime();
        //格式化是将Date的时间转换为字符串
        SimpleDateFormat sdf=new SimpleDateFormat(("yyyy/MM/dd HH:mm:ss"));
        System.out.println(sdf.format(d));

        c1.add(Calendar.DAY_OF_WEEK,-14);
        Date d1=c1.getTime();
        System.out.println(sdf.format(d1));

        c1.set(2000,1,27);
        Date d3=c1.getTime();
        System.out.println(d3);
    }
}

Calendar的set和get的使用小技巧

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CalendarTest01 {
    public static void main(String[] args) {
        //如何使用Calendar来实现判断一年某一个月有多少天(2000.2)
        //1.调用Calendar中的set设置年月日,设置为2000年3月1
        Calendar c1=Calendar.getInstance();
        c1.set(2000,2,1);
        //2.对天数进行减一
        c1.add(Calendar.DATE,-1);
        Date d3=c1.getTime();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        System.out.println(sdf.format(d3));
        //3.直接获取天数并输入
        System.out.println(c1.get(Calendar.DATE));

    }
}

异常:程序出现了不正常的情况

  • 异常体系:

    • Error:严重问题,不需要处理(java虚拟机无法解决的严重问题,资源耗尽,jvm系统内部出错
    • Exception:异常类,它表示本身可以处理的问题
    • RuntimeException(运行时异常)
    • 非RuntimeException(编译时异常)
      在编译时必须处理,否者程序不能通过编译,就不能执行了
  1. 编译期异常处理机制一:try-catch-finally:捕获异常

       try{
            捕获异常第一步,将可能出现的异常代码都放在try中
       }
       catch(Exception e){
            在catch中对异常进行处理
       }
       finally{
            不管上述是否发生异常,都要执行该代码块
       }
       多个异常关系,如果没有关系,谁在前谁在后没有关系
       如果有关系,子在前,父在后
    
  2. 编译期异常处理机制二:throws(抛出异常:自己不处理,谁调用谁处理)

       throws Exception  写在方法的声明处,指明方法在执行时,可能会出现异常
       一旦方法体执行,出现这个异常,调用者需要处理这个异常
    

格式可以参考如下:
异常处理机制一:

public static void main(String[] args){
        String s="198/01/09 13:14:52";
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

        try {
            Date date=sdf.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

异常处理机制二:

public static void main(String[] args) throws ParseException {
        String s="198/01/09 13:14:52";
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date=sdf.parse(s);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值