Java中的Date日期类

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

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

简单使用一下:

		Date d1 = new Date();
        System.out.println(d1);
        //Fri Oct 22 00:06:35 CST 2021,现在的中国时间


        long date = 1000*60*60;//1000毫秒*60*60 = 1小时
        Date d2 = new Date(date);
        System.out.println(d2);
        //Thu Jan 01 09:00:00 CST 1970。
        //因为我们中国的时区在东八区。所以是 08:00加上1小时。

Date类的常用方法

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

写一下:

//无参构造,默认Date d1 = new Date(System.currentTimeMillis());
        //System.currentTimeMillis()也是获取1970年到现在的时间(毫秒)
        Date d1 = new Date();
        System.out.println(d1);//当前时间
        System.out.println(d1.getTime()*1.0/60/60/24/365/1000 + "年");//1970年到现在的时间(年)

        System.out.println("----------------");

        long time = 1000*60*60;//1小时
        d1.setTime(time);
        System.out.println(d1);//结果与上面代码同理
        d1.setTime(System.currentTimeMillis());
        System.out.println(d1);

输出:

Fri Oct 22 00:29:58 CST 2021
51.84023968673896----------------
Thu Jan 01 09:00:00 CST 1970
Fri Oct 22 00:29:58 CST 2021

SimpleDateFormat 类概述

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

日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从 ‘A’ 到 ‘Z’ 以及从 ‘a’ 到 ‘z’ 引号的字母被解释为表示日期或时间字符串的组件的模式字母

常用:

字母单位
y
M
d
H小时
m
s
构造方法名说明
public SimpleDateFormat()构造一个SimepleDateFormat,使用默认模式和日期格式
public SimpleDateFormat(String pattern)构造一个SimpleDateFormat,使用给定的模式和默认的日期格式

格式化和解析日期

方法说明
格式化:public Final String format(Date date)将日期格式化成日期/时间字符串
解析:public Date parse(String sourse)从给定字符串的开始解析文本以生成日期

小练习:日期工具类

需求:定义一个日期工具类(DaateUtils),包含两种方法:

  • 把日期Date转换为指定格式的字符串;
  • 把字符串解析为指定格式的日期;

然后定义一个测试类(Demo),测试日期工具类的方法

日期工具类(DaateUtils):

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

public class DateUtils {
    //构造方法私有
    private DateUtils(){}

    //成员方法静态

    //把日期转变为指定格式
    public static String dateToString(Date d,String format){

        SimpleDateFormat sdf = new SimpleDateFormat(format);
        String s = sdf.format(d);
        return s;

    }
    //把字符串解析为指定的日期
    public static Date stringToDate(String s,String format) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        Date d = new Date();
        d = sdf.parse(s);
        return d;
    }
}

Demo:

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

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

        //测试1
        Date d = new Date();
        String format1 = "yyyy年MM月dd日 HH时mm分ss秒";
        String s = DateUtils.dateToString(d,format1);
        System.out.println(s);
        Date dd = DateUtils.stringToDate(s,format1);
        System.out.println(dd);

        System.out.println("----------------");

        //测试2,换一种格式
        String ss = "2001-03-14 03:33:20";
        String format2 = "yyyy-MM-dd HH:mm:ss";
        d = DateUtils.stringToDate(ss,format2);
        System.out.println(d);

        System.out.println("----------------");

        //测试3,再换一种格式
        String format3 = "HH:mm:ss";
        //d = DateUtils.stringToDate(s,format);
        //System.out.println(d);
        // 报错,String s 的格式要与 format 一致
        String sss = DateUtils.dateToString(d,format3);
        System.out.println(sss);
    }
}

Github

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值