Date日期类,SimpleDateFormat、calendar的使用

一,Date日期类

第一代日期类Date

Date:精确到毫秒,代表特定的瞬间

Date:java.util.Date是用于表示一个日期和时间的对象,注意与java.sql.Date区分,后者用在数据库中。如果观察Date的源码,可以发现它实际上存储了一个long类型的以毫秒表示的时间戳。

public class Demo03 {
    public static void main(String[] args) {
        //日期在开发中常用来储存 生日,下单时间,付款时间,审批时间等
        //类 Date 表示特定的瞬间,精确的毫秒
        Date date1 = new Date();  //获取当前基于环境的时间
        System.out.println(date1);

        long time = date1.getTime();
        System.out.println(time);

        Date date2 = new Date(6000);
        System.out.println(date2);
    }
}

二,SimpleDateFormat

SampleDateFormat:格式和解析日期的类,允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化

SimpleDateFormat:对 Date 数据使用预定义的字符串进行格式转换。

yyyy:年 , MM:月  ,dd: 日 , HH: 小时  ,mm: 分钟 , ss: 秒。

public class Demo04 {
    public static void main(String[] args) throws ParseException {
       //SimpleDateFormat 用来实现 日期 和 字符串 之间的相互转换
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date1 = new Date();

        //把 日期 转换成指定格式的 字符串
        String format = sdf.format(date1);
        System.out.println(format);

        //把指定格式的 字符串 转换成 日期
        String time = "2022/12/02 17:00:32";
        Date date2 = sdf.parse(time);
        System.out.println(date2);
    }
}

三,calendar

第二代日期类Calendar:主要是 Calendar 类(日历),是一个抽象类,为特定瞬间与一组诸如YEAR、MONTH、DAY_OF-MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

public class Demo06 {
    public static void main(String[] args) {
        //Calendar 类是一个抽象类,可以通过Calendar 的 getInstance 的方法返回一个Calendar 对象
        Calendar calendar = Calendar.getInstance();
        Date date1 = calendar.getTime();//获取当前系统的时间
        System.out.println(date1);

        Long timeInMillis = calendar.getTimeInMillis();
        System.out.println("当前的毫秒值:"+timeInMillis);

        TimeZone timeZone = calendar.getTimeZone();
        System.out.println("时区:"+timeZone);

        //get方法可以根据 指定的日历字段 获取时间对应的值
        int year = calendar.get(Calendar.YEAR);
        System.out.println("年份:"+year);
        int month = calendar.get(Calendar.MONTH);
        System.out.println("月份:"+(month+1));//0-11表示 1-12月
        int date = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("日期:"+date);
        int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
        System.out.println("本年的第:"+dayOfYear);

        //可以获取 指定时间 月份0-11 表示1-12月
        calendar.set(2003, 1, 27,11,07,32);
        Date date2 = calendar.getTime();
        System.out.println(date2);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值