时间处理相关类

在计算机世界,我们把1970年1月1日 00:00:00 定位基准时间,每个度量单位是毫秒

我们用long类型的变量来表示时间,从基准时间前后几亿年都能表示。这个"时刻数值"是所有时间类的核心值,年月日都是靠这个"数值"计算出来的。

平时涉及到的时间类:

Date时间类(Java.util.Date)

在标准的Java类库中包含一个Date类,它的对象包含一个特定的瞬间,精确到毫秒。

  • Date() 分配一个date对象,并初始化对象为此刻的时间和日期,精确到毫秒。
  • Date(long date) 分配 Date对象并初始化此对象,以表示自标准时间以来的毫秒数
  • boolean equals(Object obj) 比较两个日期的相等性
  • long getTime() 返回毫秒数
  • String toString()把此Date对象转换为以下形式的String: down mon dd hh:mm:ss: zzz: yyyy 其中 dow一周中的某一天。

Date类的使用

typescript 复制代码
import java.util.Date;

public class Test {
    public static void main(String[] args) {
        long nowNum = System.currentTimeMillis(); // 当前时刻对应的毫秒数
        System.out.println(nowNum); // 1760590932674

        Date d = new Date(); // 当前时刻的对象
        System.out.println(d); // Thu Oct 16 13:02:12 CST 2025
        System.out.println(d.getTime()); // 返回时间对应的毫秒数 1760590979226

        Date d1 = new Date(1000L * 3600 * 24 * 365 * 150); // 距离1970年 150年
        System.out.println(d1); // Sun Nov 26 08:00:00 CST 2119

    }
}

DateFormat类 和 SimpleDateFormat类

DateFormat类的作用把时间对象转换成指定格式的字符串。反之,把指定格式的字符串转化成时间对象。DateFormat是一个抽象类,一般使用它的子类SimpleDateFormat类来实现。

ini 复制代码
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String[] args) throws ParseException {
        // new 出SimpleDateFormat
        SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        SimpleDateFormat s2 = new SimpleDateFormat("yy-MM-dd");

        // 将时间对象转成字符串
        String daytime = s1.format(new Date());
        System.out.println(daytime); // 2025-10-16 07:12:23

        String day = s2.format(new Date());
        System.out.println(day); // 2025-10-16

        SimpleDateFormat s3 = new SimpleDateFormat("hh:mm:ss");
        String time = s3.format(new Date());
        System.out.println(time); // 07:17:19

        // 将符合指定格式的字符串转成时间对象,字符串格式需要和指定格式一致
        String str = "2049-10-1";
        Date date = s2.parse(str);
        System.out.println(date); // Fri Oct 01 00:00:00 CST 2049

        str = "2049-10-1 20:15:30";
        date = s1.parse(str);
        System.out.println(date); // Fri Oct 01 20:15:30 CST 2049
    }
}
java 复制代码
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat s = new SimpleDateFormat("D");
        String daytime = s.format(new Date());
        System.out.println(daytime); // 289, 获取今天时本年度第几天
    }
}
相关推荐
李日灐6 分钟前
C++进阶必备:红黑树从 0 到 1: 手撕底层,带你搞懂平衡二叉树的平衡逻辑与黑高检验
开发语言·数据结构·c++·后端·面试·红黑树·自平衡二叉搜索树
qq_2975746741 分钟前
【实战】POI 实现 Excel 多级表头导出(含合并单元格完整方案)
java·spring boot·后端·excel
郝学胜-神的一滴1 小时前
超越Spring的Summer(一): PackageScanner 类实现原理详解
java·服务器·开发语言·后端·spring·软件构建
Tony Bai1 小时前
“Go 2,请不要发生!”:如果 Go 变成了“缝合怪”,你还会爱它吗?
开发语言·后端·golang
Victor3561 小时前
Hibernate(91)如何在数据库回归测试中使用Hibernate?
后端
Victor3561 小时前
MongoDB(1)什么是MongoDB?
后端
Victor3568 小时前
https://editor.csdn.net/md/?articleId=139321571&spm=1011.2415.3001.9698
后端
Victor3568 小时前
Hibernate(89)如何在压力测试中使用Hibernate?
后端
灰子学技术9 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
Gogo81610 小时前
BigInt 与 Number 的爱恨情仇,为何大佬都劝你“能用 Number 就别用 BigInt”?
后端