Java_Day18(Date类、SimpleDateFormat类、Calendar类、可变参数)

Java_Day18(Date类、SimpleDateFormat类、Calendar类、可变参数)

时间日期类

Date类(应用)

Date 代表了一个特定的时间,精确到毫秒

在这里插入图片描述

对于Date类 使用的是java.util包下的 Date表示特定的时间。

  • 在JDK 1.1之前, Date有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和第二个值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始, Calendar类应该用于在日期和时间字段之间进行转换,并且DateFormat类应用于格式化和解析日期字符串。 在相应的方法Date被弃用。

时间日期类 Date的标准基准时间是 1970年1月1日00:00:00 GMT起的指定毫秒数。

  • 构造方法:

在这里插入图片描述
在这里插入图片描述

  • 基本方法:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public class DateDemo {
    public static void main(String[] args) {
        // 创建Date对象   返回系统当前时间
        Date date = new Date();
        System.out.println(date);
        //第二种构造方式 public Date(long date)
        long time = date.getTime();//返回当前时间距离1970年1月1日0:0:0的毫秒数
        Date date1 = new Date(time);
        date1.setTime(time + 100000);//重写修改时间
        System.out.println(date1.toString());
        // 比较两个时间对象是否相等  public int compareTo(Date anotherDate)
        //如果参数Date等于此Date,则值为0 ; 如果此日期在Date参数之前,该值小于0 ; 如果此日期在Date参数0则值大于0 。
        System.out.println(date.compareTo(date1));
    }
}


时间日期的格式化:

public class SimpleDateFormat   extends DateFormat

SimpleDateFormat是一个具体的类 它允许格式化(日期文本),解析(文本日期)

  • 时间日期格式化的 模式的表示:
    在这里插入图片描述
  • 构造方法:

在这里插入图片描述

  • 常用方法:(主要使用的是他的父类的方法)

在这里插入图片描述
在这里插入图片描述

时间日期的格式化 格式化之后返回的是一个String类型

// 进行时间日期的格式化
//创建一个SimpleDateFormat对象  方式一
SimpleDateFormat  sdf = new SimpleDateFormat();
sdf.applyPattern("yyyy-MM-dd HH:mm:ss");
String strDate =  sdf.format(date);
System.out.println(strDate);
//方式二
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String strDate1 = sdf1.format(date);
System.out.println(strDate1);

将String类型的 日期解析为Date类型:

//解析
String dateStr = "2020-12-22 20:05:12";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd ");
Date date2 = sdf2.parse(dateStr);
System.out.println(date2);

错误示例:

//解析
String dateStr = "2020-12-22";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
Date date2 = sdf2.parse(dateStr);
System.out.println(date2);

在这里插入图片描述

Calendar

public abstract class Calendar  extends Object

implements Serializable, Cloneable, Comparable
所述Calendar类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法calendar fields如YEAR , MONTH , DAY_OF_MONTH , HOUR ,等等,以及用于操纵该日历字段,如获取的日期下个星期。 时间上的瞬间可以用毫秒值表示,该值是从1970年1月1日00:00 00:00.000 GMT(Gregorian)的Epoch的偏移量。

  • 常用方法:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

// 获取Calendar的对象  返回系统当前的日历对象
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
// 获取年月日时分秒
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
int month =calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int min = calendar.get(Calendar.MINUTE);
int sec = calendar.get(Calendar.SECOND);
String str = year +"年"+ month + "月" + day +"日" +" " + hour+":"+min+":"+sec;
System.out.println(str);


  • 修改时间:
// 获取 当前日期的后10天的时间
//calendar.add(Calendar.DAY_OF_MONTH,10);
// 获取 当前日期的前10天的时间
calendar.add(Calendar.DAY_OF_MONTH,-10);

可变参数

public class VarDemo {
    //计算两个整数的和
    //计算三个整数的和  对于上述两个要求 可以用方法重载解决
    //但是  可能出现对于求和的参数 的个数不确定的情况  可以使用可变参数来解决
    //可变参数的使用和 数组相同
    public static int sum(int a,int ... b){
        for(int i = 0 ; i < b.length;i++){
            a+= b[i];
        }
        return  a;
    }

    public static void main(String[] args) {
        int s= sum(1,2,3,4,5,3);
        System.out.println(s);
    }
}

可变参数使用时的注意事项:

  1. 可变参数可单独作为方法的 形参
  2. 可变参数必须位于形参列表的最后位置
  3. 在一个方法的形参列表中 可变参数只能有一个
  4. 可变参数的类型可以是任意类型
public static int sum(int c,int d ,int ... b){
    int a = 0 ;
    for(int i = 0 ; i < b.length;i++){
        a+= b[i];
    }
    return  a;
}

public class VarDemo {
    //计算两个整数的和
    //计算三个整数的和  对于上述两个要求 可以用方法重载解决
    //但是  可能出现对于求和的参数 的个数不确定的情况  可以使用可变参数来解决
    //可变参数的使用和 数组相同
    public static int sum(int c,int d ,Object ... b){
        Integer a = 0 ;
        for(int i = 0 ; i < b.length;i++){
            Integer bb = (Integer) b[i];
            a+= bb;
        }
        return  a;
    }

    public static void main(String[] args) {
        int s= sum(1,2,3,4,5,3);
        System.out.println(s);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值