常用类型_日期..

1.Date

java.util.Date是开发中常用的日期处理类(并非java.sql.Date类)

现在这么一个需求:
就是获取当前时区的时间

public class Main{
	public static void main(String[] args) {
        // d1和d2表示的时间都是一样的 所以推荐使用第一种写法 比较简洁
        Date d1 = new Date();
        Date d2 = new Date(System.currentTimeMillis());// 这种写法表示的是从1970.1.1 00:00:00经历了到现在的毫秒数的时间 即当前的时间
        System.out.println(d1);
        System.out.println(d2);
    }
}

从打印的结果来看 印证了我们的注释 打印结果中有一个CST/GMT+08:00 CST指的是中国标准时间(China Standard Time) 而GMT指的是格林尼治时间 由于英国和中国相差8个小时的时差 所以GMT+08:00相当于CST

1.Date的常用方法

public class Main{
	public static void main(String[] args) {
        // 以下是Date类的常用方法
        Date d1 = new Date();
        Date d2 = new Date();
        // 设置毫秒数
        d1.setTime(1000);// 单位是毫秒
        d2.setTime(2000);
        // 获取毫秒数
        System.out.println(d1.getTime());// 1000 单位是毫秒
        System.out.println(d2.getTime());// 2000
        // 比较前者是否晚于后者
        System.out.println(d1.after(d2));// false
        // 比较前者是否早于后者
        System.out.println(d1.before(d2));// true
        // 获取两者比较的结果
        System.out.println(d1.compareTo(d2));// <0
    }
}

2.SimpleDateFormat

我们可以通过java.text.SimpleDateFormat对日期的格式进行处理

public class Main{
public static void main(String[] args) throws ParseException {
        // 我们定义一个日期格式 用来格式化日期 格式化为指定的格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str = sdf.format(new Date());
        System.out.println(str);
        // 当然对于已经格式化的日期 我们也可以对其进行解析 解析成日期格式
        Date d = sdf.parse(str);
        System.out.println(d);
    }
}

3.SimpleDateFormat的模式字母

常用类型_日期.._第1张图片

2.Calendar

除了上述Date类可以用来帮助我们对日期进行处理以外 还可以通过java.util.Calendar对开发中的日期
进行处理
其中 值得注意的是:Calendar是一个抽象类 不能够被实例化 但是可以指向子类对象 而类内部正好有一个方法可以获取子类对象 即getInstance()方法 你可以通过查看jdk原码加以了解
并且Date类中很多过期的方法都迁移到了这里面 功能也会比Date更加丰富

public class Main {
    public static void main(String[] args) throws ParseException {
        Calendar c = Calendar.getInstance();
        // 获取当前时间的年份
        System.out.println(c.get(Calendar.YEAR));// 2024
        // 获取当前时间的月份 月份的取值范围为[0, 11]
        System.out.println(c.get(Calendar.MONTH));// 0
        // 获取当前时间的在一个月中的第几天 取值范围为[1, 31]
        System.out.println(c.get(Calendar.DAY_OF_MONTH));// 6
        // 获取当前时间在一个星期中的第几天 取值范围为[1, 7] 并且星期日才是一个星期的开始
        System.out.println(c.get(Calendar.DAY_OF_WEEK));// 7
        // 获取当前时间在一年中的第几天 取值范围为[1, 366]
        System.out.println(c.get(Calendar.DAY_OF_YEAR));// 6
        // 获取当前时间的小时数
        System.out.println(c.get(Calendar.HOUR));// 11
        // 获取当前时间的分钟数
        System.out.println(c.get(Calendar.MINUTE));// 23
        // 获取当前时间的秒数
        System.out.println(c.get(Calendar.SECOND));// 49
        // 获取当前时间的毫秒数
        System.out.println(c.get(Calendar.MILLISECOND));// 74
    }
}

1.Calendar的常用方法

public class Main {
    public static void main(String[] args) throws ParseException {
        Calendar c = Calendar.getInstance();
        // 设置时间为2019-7-6 原因在于月份的起始值为0 所以6表示7月份
        c.set(2019, 06, 06);
        // 接着就是在当前时间的基础上对参数进行添加操作
        // 对日进行追加 追加5天 时间为2019-7-11
        c.add(Calendar.DAY_OF_MONTH, 5);// 11
        System.out.println(c.get(Calendar.DAY_OF_MONTH));
        // 对月份进行追加 追加2个月 时间为2019-9-11
        c.add(Calendar.MONTH, 2);
        System.out.println(c.get(Calendar.MONTH));// 8
        // 再次设置时间 这次通过Date对象进行设置 设置时间为当前时间
        c.setTime(new Date());
        // 获取当前时间
        System.out.println(c.getTime());// 2024-1-6 11:32:23
        // 设置毫秒数
        c.setTimeInMillis(System.currentTimeMillis());// 设置时间为当前时间
        System.out.println(c.getTimeInMillis());// 获取毫秒数
    }
}

2.打印格式化

常用类型_日期.._第2张图片
其中的本地化操作就是以本地的语言呈现当前所要呈现的东西

public class Main {
    public static void main(String[] args) throws ParseException {
        Calendar c = Calendar.getInstance();
        Date date = new Date();
        System.out.printf("%tB %te %tY%n", date, date, date);
        System.out.printf("%tl %tM %tp%n", c, c, c);
    }
}

你可能感兴趣的:(java,开发语言)