Java API 日期时间 Data

1 Date类(应用)

  • Date类概述

    Date 代表了一个特定的时间,精确到毫秒

  • Date类构造方法

方法名 说明
public Date() 分配一个 Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
public Date(long date) 分配一个 Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数
  • 示例代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class DateDemo01 {
    public static void main(String[] args) {
    //public Date():分配一个 Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
    Date d1 = new Date();
    System.out.println(d1); // Wed Dec 08 14:45:04 CST 2021

    //public Date(long date):分配一个 Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数
    long date = 1000*60*60;
    Date d2 = new Date(date);
    System.out.println(d2); // Thu Jan 01 09:00:00 CST 1970
    }
    }

2 Date类常用方法(应用)

  • 常用方法
方法名 说明
public long getTime() 获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值
public void setTime(long time) 设置时间,给的是毫秒值
  • 示例代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class DateDemo02 {
    public static void main(String[] args) {
    //创建日期对象
    Date d = new Date();

    //public long getTime():获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值
    // System.out.println(d.getTime());
    // System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");

    //public void setTime(long time):设置时间,给的是毫秒值
    // long time = 1000*60*60;
    long time = System.currentTimeMillis();
    d.setTime(time);

    System.out.println(d);
    }
    }

3 SimpleDateFormat类(应用)

  • SimpleDateFormat类概述

    SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。

    我们重点学习日期格式化和解析

  • SimpleDateFormat类构造方法

方法名 说明
public SimpleDateFormat() 构造一个SimpleDateFormat,使用默认模式和日期格式
public SimpleDateFormat(String pattern) 构造一个SimpleDateFormat使用给定的模式和默认的日期格式
  • SimpleDateFormat类的常用方法

    • 格式化(从Date到String)
      • public final String format(Date date):将日期格式化成日期/时间字符串
    • 解析(从String到Date)
      • public Date parse(String source):从给定字符串的开始解析文本以生成日期
  • 示例代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {
    //格式化:从 Date 到 String
    Date d = new Date();
    // SimpleDateFormat sdf = new SimpleDateFormat();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    String s = sdf.format(d);
    System.out.println(s);
    System.out.println("--------");

    //从 String 到 Date
    String ss = "2048-08-09 11:11:11";
    //ParseException
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date dd = sdf2.parse(ss);
    System.out.println(dd);
    }
    }

4 日期工具类案例(应用)

  • 案例需求

    定义一个日期工具类(DateUtils),包含两个方法:把日期转换为指定格式的字符串;把字符串解析为指定格式的日期,然后定义一个测试类(DateDemo),测试日期工具类的方法

  • 代码实现

    • 工具类
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    public class DateUtils {
    private DateUtils() {}

    /*
    把日期转为指定格式的字符串
    返回值类型:String
    参数:Date date, String format
    */
    public static String dateToString(Date date, String format) {
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    String s = sdf.format(date);
    return s;
    }


    /*
    把字符串解析为指定格式的日期
    返回值类型:Date
    参数:String s, String format
    */
    public static Date stringToDate(String s, String format) throws ParseException {
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    Date d = sdf.parse(s);
    return d;
    }

    }
    • 测试类
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class DateDemo {
    public static void main(String[] args) throws ParseException {
    //创建日期对象
    Date d = new Date();

    String s1 = DateUtils.dateToString(d, "yyyy年MM月dd日 HH:mm:ss");
    System.out.println(s1);

    String s2 = DateUtils.dateToString(d, "yyyy年MM月dd日");
    System.out.println(s2);

    String s3 = DateUtils.dateToString(d, "HH:mm:ss");
    System.out.println(s3);
    System.out.println("--------");

    String s = "2048-08-09 12:12:12";
    Date dd = DateUtils.stringToDate(s, "yyyy-MM-dd HH:mm:ss");
    System.out.println(dd);
    }
    }

Java API 日期时间 Data
https://flepeng.github.io/021-Java-31-API-Java-API-日期时间-Data/
作者
Lepeng
发布于
2023年3月23日
许可协议