Api-日期

1.Date
  • 构造器:

    • 无参构造器: Date d = new Date;
    • 有参构造器: Date d = new Date(time); // time 为 long的毫秒值 , 转化为date日期对象;
  • 常用api:

    • api描述
      public long getTime() / System.CurrentTimeMillis()获取从1970年1月1日 00:00:00走到此刻的毫秒数(long)
      public void setTime(long time)设置日期对象的时间为当前时间毫秒值 对应的时间
public class DateDemo {
    public static void main(String[] args) {
        //目标:学会Date的无参与有参构造,基本方法
        //1.无参
        Date date = new Date();         //当前时间
        System.out.println(date);		//Tue Jan 16 10:55:57 CST 2024

        //2.获取时间毫秒getTime()
        long time = date.getTime();
        System.out.println(time);
//        long time1 = System.currentTimeMillis();      更直接
//        System.out.println(time1);

        //3.有参构造
        long time1 = date.getTime();
        time1 += (60L * 60 + 121)*1000;
        Date date1 = new Date(time1);
        System.out.println(date1);

        //4.设置当前时间毫秒 setTime()
        date.setTime(time1);
        System.out.println(date);
    }
}
2.SimpleDateFormat

格式化的日期时间形式 关键: pattern模式

  • 构造器:

    • 构造器说明
      public SimpleDateFormat()构造一个时间形式,默认格式
      public SimpleDateFormat(String pattern)构造一个时间形式,使用指定的pattern形式
  • 常用的模式pattern:

    • yyyy-MM-dd HH:mm:ss — 2024-1-15 12:12:09

    • yyyy年MM月dd日 HH:mm:ss — 2024年1月15日 12:12:10

    • yyyy年MM月dd日 HH:mm:ss EEE a — 2024年1月15日 10:52:59 星期一 上午

  • 格式化方法:(Date / time 转化为 格式化时间字符串)

    • public final String format(Date date) 将日期格式化为时间字符串;
    • public final String format(Object time) 将时间毫秒值转化为时间字符串;
  • 解析字符串时间 为 日期对象

    • public Date parse(String source) 格式化的时间字符串 解析 为Date类型日期
public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {
        //1.日期对象
        Date date = new Date();
        System.out.println(date);
        System.out.println("-------------");

        //2.格式化这个日期对象
        //无参构造。   输出格式  23-5-8 下午8:52
//        SimpleDateFormat sdf = new SimpleDateFormat();

        //有参构造((固定!!!pattern))
        //3.格式化日期对象成喜欢的字符串形式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");

        //格式化日期.format(Date) , 返回String
        String rs = sdf.format(date);
        System.out.println(rs);                          //2023年05月08日 20:54:55 星期一 下午
        System.out.println("-------------");

        //4.格式化时间毫秒值 .format(Time) , 返回String
        //需求:得到121秒以后的格式化时间
        long time1 = System.currentTimeMillis()+121*1000;
        String rs1 = sdf.format(time1);

        Date date1 = sdf.parse(rs1); //parse解析的字符串不一定满足 sdf的模式,要抛出		parseException
        System.out.println(rs1);
        System.out.println(date1);
    }
}
3.Calendar

单例模式 获取对象 getInstance()

  • Calendar代表系统此刻日期对应的日历对象
  • Calendar是一个抽象类,不能直接创建对象
  • 创建日历对象的方法 : public static Calendar getInstance()

常用方法:

image-20240116112311080

public class CalendarDemo {
    public static void main(String[] args) {
        //1.获取对象 .getInstance()
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar);

        //2.取得 具体的信息 .get(int field)
        int year  = calendar.get(Calendar.YEAR);
        System.out.println(year);
        int Month = calendar.get(Calendar.MONTH)+1; // 仅月份特殊 需要+1
        System.out.println(Month);

        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));

        //3.public void set(int field , int value) //修改某一字段信息    (一般不直接设置)
//        calendar.set(Calendar.HOUR , 12);
//        System.out.println(calendar);

        //4.public void add(int field int amount) 某一字段 增加/减少指定的值
        //64天后的时间
        calendar.add(Calendar.DATE , 64);
        //calendar.add(Calendar.HOUR , -10);
        //System.out.println(calendar);

        //5.public final Date getTime() 拿到此刻日期对象
        Date date = calendar.getTime();
        System.out.println(date);

        //6.public long getTimeInMillis() 拿到此刻时间毫秒值
        long time = calendar.getTimeInMillis();
        System.out.println(time);
    }
}
4.JDK8开始

image-20240116113158587

image-20240116113255241

LocalDate : 日期(2020-1-1);LocalTime:具体时间(11:12:03) ; LocalDateTime是前者的结合,日期时间

public class LocalDateDemo1 {
    public static void main(String[] args) {
        //1.获取对象
        LocalDate time = LocalDate.now();
        System.out.println(time);

        //2.获取具体月份...
        System.out.println(time.getMonthValue());

        //生日问题
        LocalDate nowTime = LocalDate.now();
        LocalDate birDate = LocalDate.of(2001,5,9);

        MonthDay  birMd = MonthDay.of(birDate.getMonthValue(),birDate.getDayOfMonth());
        MonthDay  nowMd = MonthDay.from(nowTime);

        System.out.println("今天是你的生日吗?"+ Objects.equals(birMd,nowMd));

    }
}
public class LocalTimeDemo2 {
    public static void main(String[] args) {
        //1.获取对象
        LocalTime time = LocalTime.now();
        System.out.println(time);

        //2.获取具体时间
        System.out.println(time.getHour());
        System.out.println(time.getMinute());
        System.out.println(time.getSecond());
        System.out.println(time.getNano());         //纳秒

    }
}
public class LocalDateTimeDemo3 {
    public static void main(String[] args) {
        //1.获取对象
        LocalDateTime time = LocalDateTime.now();
        System.out.println(time);

        //2.获取具体信息
        System.out.println(time.getMonthValue());
        System.out.println(time.getHour());

        //3.转化
        LocalDate date = time.toLocalDate();
        System.out.println(date);

        LocalTime time1 = time.toLocalTime();
        System.out.println(time1);

    }
}
out.println(time.getHour());

        //3.转化
        LocalDate date = time.toLocalDate();
        System.out.println(date);

        LocalTime time1 = time.toLocalTime();
        System.out.println(time1);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值