Java Date 类的常用使用

1,264 阅读2分钟

一、构造方法

image.png

  • java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。

  • 第一个构造函数使用当前日期和时间来初始化对象。

    Date date = new Date()
    
    // 例如
    // public Date() 分配一个 Date 对象,并初始化,以便它代表它被分配的时间,精确到毫秒
    Date date1 = new Date();
    System.out.println(date1); // Wed Jul 21 16:43:39 CST 2021,当前时间
    
  • 第二个构造函数接收一个参数,该参数是从 1970年1月1日 00:00:00 GMT 起的指定毫秒数。

    Date date = Date(long date)
    
    例如:
    // public Date(long date): 分配一个 Date 对象, 并将其初始化为表示从标准基准时间起指定的毫秒数
    long date = 1000 * 60 * 60; // 1 小时毫秒值
    Date date2 = new Date(0);
    Date date3 = new Date(date);
    System.out.println(date2); // Thu Jan 01 08:00:00 CST 1970,存在 8 小时时区问题
    System.out.println(date3); // Thu Jan 01 09:00:00 CST 1970,存在 8 小时时区问题
    

二、常用方法

image.png

  • 使用案例

    // 创建日期对象
    Date date = new Date();
    
    // 当前时间
    System.out.println(date);
    
    // public long getTime(): 获取的是日期对象从 1970年1月1日 00:00:00 到现在的毫秒值
    System.out.println(date.getTime());
    
    // public long setTime(): 设置时间,给的是毫秒值
    // long time = System.currentTimeMillis(); // 获取从 1970年1月1日 00:00:00 到现在的毫秒值
    long time = 1000 * 60 * 60; // 1 小时毫秒值
    date.setTime(time); // 从 1970年1月1日 00:00:00 开始增加1小时
    System.out.println(date); // Thu Jan 01 09:00:00 CST 1970,存在 8 小时时区问题
    

三、SimpleDateFormat 的使用

四、简单案例

  • DateUtils.java

    import java.util.Date;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    
    public class DateUtils {
    
      // 将日期转成指定日期格式
      public static String dateToString(java.util.Date date, String format) {
        SimpleDateFormat form = new SimpleDateFormat(format);
        return form.format(date);
      }
    
      // 将日期转成指定日期格式
      public static Date stringToDate(String date, String format) throws ParseException {
        SimpleDateFormat form = new SimpleDateFormat(format);
        return form.parse(date);
      }
    }
    
  • main.java

    import java.text.ParseException;
    import java.util.Date;
    
    public class test {
      public static void main(String[] args) throws ParseException {
    
        // 创建日期对象
        Date date = new Date();
    
        // 当前 Date 转成字符串
        String str = DateUtils.dateToString(date, "yyyy-MM-dd HH:mm:ss");
    
        // 时间字符串转成 Date (throws ParseException)
        Date date1 = DateUtils.stringToDate(str, "yyyy-MM-dd HH:mm:ss");
    
        // 输出
        System.out.println(str); // 2021-07-22 10:35:50
        System.out.println(date1); // Thu Jul 22 10:35:50 CST 2021
      }
    }