Java 基础 32 Date类和SimpleDateFormat类

1.1 Date 类的概述和构造方法

  • Date:
    • Date表示特定的瞬间,精确到毫秒。
  • 构造方法:
    • Date():根据当前时间创建的日期对象
    • Date(long date):
      根据给定的毫秒值创建对象,从1970 年 1 月 1 日 00:00:00

1.1.1案例代码

package com.itheima;

import java.util.Date;

/*
 * Date:Date表示特定的瞬间,精确到毫秒。
 * 
 * 构造方法:
 *      Date():根据当前时间创建的日期对象
 *      Date(long date):根据给定的毫秒值创建对象,从1970 年 1 月 1 日 00:00:00 
 */
public class DateDemo {
    public static void main(String[] args) {
        //Date()
        Date d = new Date();
        System.out.println(d);
        
        //Date(long date) 
        long date = 1000 * 60 * 60;
        Date dd = new Date(date);
        System.out.println(dd);
    }
}

1.2 Date类的成员方法getTime()和setTime()

成员方法:

  • public long getTime():
    • 获取的是毫秒值。从1970年1月1日 00:00:00开始的。
  • public void setTime(long time):
    • 设置时间,给的是毫秒值。
从Date得到一个毫秒值:
        getTime()
从一个毫秒值得到一个Date对象
        构造方法
        setTime(long time)

1.2.1 案例代码


package com.itheima;

import java.util.Date;

/*
 * public long getTime():获取的是毫秒值。从1970年1月1日 00:00:00开始的。
 * public void setTime(long time):设置时间,给的是毫秒值。
 * 
 * 从Date得到一个毫秒值:
 *      getTime()
 * 
 * 从一个毫秒值得到一个Date对象
 *      构造方法
 *      setTime(long time)
 */
public class DateDemo2 {
    public static void main(String[] args) {
        //创建对象
        Date d = new Date();
        
        //public long getTime()
        System.out.println(d.getTime());
        
        //public void setTime(long time)
        d.setTime(1000*60*60);
        System.out.println(d.getTime());
    }
}

1.3 SimpleDateFormat类的概述和使用

  • SimpleDateFormat:

  是一个以与语言环境有关的方式来格式化和解析日期的具体类。

它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)

  • 格式化(日期 -> 文本): Date -- String public final String format(Date date)
  • 解析(文本 -> 日期): String -- Date public Date parse(String source)

1.3.1案例代码

package com.itheima_01;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
 * SimpleDateFormat:是一个以与语言环境有关的方式来格式化和解析日期的具体类。
 * 它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)
 * 
 * 格式化(日期 -> 文本): Date -- String
 *      public final String format(Date date)
 * 
 * 解析(文本 -> 日期):  String -- Date
 *      public Date parse(String source)
 */
public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {
        /*
        //Date -- String
        Date d = new Date();
        //SimpleDateFormat(): 用默认的模式
        //SimpleDateFormat sdf = new SimpleDateFormat();
        //SimpleDateFormat(String pattern):用给定的模式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String s = sdf.format(d);
        //现在虽然实现了把日期格式化成一个字符串,但是不是我们想要的格式
        //我们想要的格式是:xxxx年xx月xx日 xx:xx:xx
        System.out.println(s);
        */
        
        //String -- Date
        String str = "2080-08-08 12:23:45";
        //把一个字符串解析为日期的时候,请注意模式字符串和给定的日期字符串的格式要匹配
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d = sdf.parse(str);
        System.out.println(d);
    }
}

1.4 Date的练习之日期工具类的定义和使用

1.4.1 制作工具类DateUtil

1.4.1.1 案例代码


package com.itheima;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
 * 工具类
 * 
 * 构造方法私有
 * 成员方法静态
 */
public class DateUtil {
    private DateUtil() {}
    
    /*
     * 把日期转换为指定格式的字符串
     * 两个明确:
     *      返回值类型: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.4.2 测试工具类

package com.itheima;

import java.text.ParseException;
import java.util.Date;

public class DateUtilTest {
    public static void main(String[] args) throws ParseException {
        Date d = new Date();
        
        String s = DateUtil.dateToString(d, "yyyy年MM月dd日 HH:mm:ss");
        System.out.println(s);
        
        String s2 = DateUtil.dateToString(d, "yyyy年MM月dd日");
        System.out.println(s2);
        
        String s3 = DateUtil.dateToString(d, "HH:mm:ss");
        System.out.println(s3);
        
        String str = "2080-08-08 12:23:34";
        Date dd = DateUtil.stringToDate(str, "yyyy-MM-dd HH:mm:ss");
        System.out.println(dd);
    }
}

你可能感兴趣的:(Java 基础 32 Date类和SimpleDateFormat类)