Java常用类—日期类—Date、SimpleDateFormat、Calender

文章目录

    • 一、Date类
      • 1. Date类的概述及构造方法
      • 2. 成员方法
    • 二、SimpleDateFormat类
      • 1. 概述及构造方法
      • 2. 成员方法
    • 三、Calendar类
      • 1. 概述及构造方法
      • 2. Calendar类的add与set方法

一、Date类

1. Date类的概述及构造方法

  • 概述

    • 表示特定的瞬间,精确到毫秒
  • 构造方法

    • public Date()
      • 创建一个Date类对象,表示当前的时间,精确到毫秒
    • public Date(long date)
      • 创建一个Date类,表示从1970 年 1 月 1 日 00:00:00 GMT,加上指定的毫秒数的时间

2. 成员方法

  • public long getTime()
    • 获取一个日期对象的毫秒值,即返回从1970 年 1 月 1 日 00:00:00 GMT到日期对象表示时间的毫秒数
  • public void setTime(long time)
    • 设置日期对象的时间,将从1970 年 1 月 1 日 00:00:00 GMT以后time时间的时间点赋值给日期对象

二、SimpleDateFormat类

1. 概述及构造方法

  • 概述

    • 以一定的格式将日期对象格式化为字符串,或将字符串解析成日期对象
  • 构造方法

    • public SimpleDateFormat()
      • 使用默认的模式(规则)和默认语言环境的日期格式来创建一个SimpleDateFormat对象
    • public SimpleDateFormat(String pattern)
      • 使用指定的模式(规则)与默认语言环境的日期格式符号来创建一个SimpleDateFormat对象
  • 规则的语法

符号 含义
y
M 年中的月份
W 月份中的周数
d 月中的天数
E 星期中的天数
k 一天中的小时(1-24)
m 小时中的分钟
s 分钟中的秒数
S 毫秒数

2. 成员方法

  • public String format(Date date)

    • 将一个日期对象格式化成一个字符串
  • public Date parse(String dateStr)

    • 将一个日期字符串以指定的格式解析成一个日期对象
  • 练习:计算你来到了这个世界多少天

public static void main(String[] args) throws ParseException {

        SimpleDateFormat before = new SimpleDateFormat("yyyy:MM:dd");//以指定的格式创建SimpleDateFormat对象
        System.out.println("请输入你的出生年月日,以 yyyy:MM:dd 的格式");
        Scanner in = new Scanner(System.in);
        String birtday = in.nextLine();//得到用户出生年月日
        Date ago = before.parse(birtday);
        long time2 = ago.getTime();//得到出生时距离1970年1月1日零点的毫秒值

        Date now = new Date();
        long time1 = now.getTime();//得到现在距离1970年1月1日零点的毫秒值

        long days = (time1 - time2) / (1000 * 60 * 60 * 24);//将两者之差转换成天
        System.out.println(days);//打印
    }
//运行结果:
//请输入你的出生年月日,以 yyyy:MM:dd 的格式
//1999:10:01
//7338

三、Calendar类

1. 概述及构造方法

  • 概述

    • 抽象类,为特定的瞬间日历字段的转换和操作提供了一些方法,可以通过内部静态方法getInstance()方法类获得他的对象
  • public static Calendar getInstance()

    • 使用默认的时区与语言环境得到一个日历对象
  • public int get(int field)

    • 获得给定日历字段对应的值,field通过Calendar提供的字段来拿

2. Calendar类的add与set方法

  • public void add(int field,int amount)
    • 根据日历的规则,给指定的日历字段加减指定的时间量
  • public final void set(int year,int month,int date)
    • 设置日历的时间,年、月、日
  • 获取任意年份的二月天数
public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();//使用静态方法创建Calendar类对象

        System.out.println("请输入要查询的年份");
        Scanner in = new Scanner(System.in);
        int year = in.nextInt();//得到查询的年份

        calendar.set(year, 2, 1);//给日历对象设置时间为当年的3月1日
        calendar.add(Calendar.DAY_OF_MONTH, -1);//将日期往前推一天
        int nums = calendar.get(Calendar.DAY_OF_MONTH);//获取日历的天数字段
        System.out.println(nums);//打印
    }
//运行结果:
//请输入要查询的年份
//2019
//28

你可能感兴趣的:(JavaSE)