Java常用类库之Date、DateFormat类

Java常用类库之Date、DateFormat类

Date类

Date类代表了一个特定的时间,精度为毫秒。参照时间:1970年1月1日 0时0分0秒

常用方法

Date类构造方法:

Date() //创建一个Date对象,时间是执行这个代码的时间(当前时间)
Date(long date) //创建一个Date对象,时间是 1970年1月1日00:00:00基础上加上参数指定的毫秒值

Date类普通方法:

long getTime() //返回自1970年1月1日以来,由Date对象表示的毫秒数
void setTime(long time) //修改时间,在1970年1月1日00:00:00基础上加上参数指定的毫秒值

示例:

public class Demo {
    public static void main(String[] args) {
        // Date() 创建一个Date对象,时间是执行这个代码的时间(现在时间)
        Date now = new Date(); // 常用
        System.out.println("now = " + now); //输出结果: Tue May 26 10:31:03 CST 2020

        // Date(long date) 创建一个Date对象,时间是 1970年1月1日00:00:00基础上加上参数指定的毫秒值
        Date date = new Date(2000L); // 1000毫秒 就是1秒, 中国是东八区,时间比标准时间早8个小时
        System.out.println("date = " + date); // Thu Jan 01 08:00:02 CST 1970

        // long getTime() 返回自1970年1月1日以来,由Date对象表示的毫秒数
        long time = now.getTime(); // 常用
        System.out.println("now从1970年以来的毫秒值: " + time); // now从1970年以来的毫秒值: 1590460629801
        //             毫秒    秒   分钟  小时 天   年
        double year = time * 1.0 / 1000 / 60 / 60 / 24 / 365;
        System.out.println(year); // 50.43318008717022

        // void setTime(long time) 修改时间,在1970年1月1日00:00:00基础上加上参数指定的毫秒值
        now.setTime(1000 * 5L);
        System.out.println("now = " + now); // Thu Jan 01 08:00:05 CST 1970
    }
}

DateFormat类

1.为什么要DateFormat类:
Date主要表示1970年到某个时间的毫秒值,如果输出给用户看,用户是看不太懂的:“Tue May 26 07:58:45 CST 2020”。用户实际上比较喜欢"2020年05月26日 07时58分45秒"类似这种格式

2.DateFormat类的作用:
1.格式化(日期转文本) Date转成字符串
2.解析(文本转日期) 字符串转成Date

**3.创建DateFormat对象: DateFormat是抽象类,通常我们使用子类:**SimpleDateFormat

4.需求:将当前时间的 “Date” 转成 "2020年05月26日 07时58分45秒"
格式化:将日期转成文本

5.为什么要将字符串转成Date对象
例如网站注册用户选择的年月日是一个字符串.需要将他转成Date保存到数据库中

6.需求:将字符串 “2020-05-26 10:13:31” 转成 Date对象
解析:将文本转成日期

示例:

 public class Demo {
    public static void main(String[] args) throws ParseException {
        // 需求:将当前时间的 "Date" 转成 "2020年05月26日 07时58分45秒"
        Date now = new Date(); // "Tue May 26 07:58:45 CST 2020"
        // 格式化:将日期转成文本
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        String timeStr = sdf.format(now);
        System.out.println("timeStr = " + timeStr); // 2020年05月26日 11时12分51秒
        System.out.println("------------------");
        // 需求:将字符串 "2020-05-26 10:13:31" 转成Date对象
        String dateStr = "2020-05-26 10:13:31";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        // 解析:将文本转成日期
        Date parseData = sdf2.parse(dateStr); // alt + 回车 -> 选择 Add exception tomethod signature(第一项)
        System.out.println("parseData = " + parseData);
		}
}

小结:
1.DateFormat类的作用?
Date和String之间的转换
1.格式化(日期转文本) Date转成字符串
2.解析(文本转日期) 字符串转成Date

2.将Date对象转成字符串使用哪个方法?

String format(Date d)

3.将时间字符串转成Date对象使用哪个方法?

 Date parse(String s)

4.如何指定日期格式?
1.明确最终的时间格式 如: “2020年05月26日 07时58分45秒”
2.会变化的使用特殊字符代替: “yyyy年MM月dd日 HH时mm分ss秒”

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值