Java中Date,Calendar,Timestamp的区别以及相互转换与使用

yizhihongxing

Java中Date,Calendar,Timestamp的区别以及相互转换与使用

在Java中,DateCalendarTimestamp是处理日期和时间的三个主要的类。本文将详细介绍它们的区别以及如何相互转换和使用。

Date类

Date类是Java中最早的日期和时间处理类。它表示从GMT(格林尼治标准时间)1970年1月1日00:00:00时间开始至今的毫秒数。由于毫秒是一个长整数,因此Date类具有良好的跨平台性。Date类中的方法既可以格式化日期和时间,也可以将其解析为时间戳。以下是一个简单的Date类示例:

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

public class DateExample {
    public static void main(String[] args) {

        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = formatter.format(date);

        System.out.println("当前日期和时间为:" + formattedDate);
    }
}

输出结果:

当前日期和时间为:2021-06-30 16:22:37

Calendar类

Calendar类是一个抽象类,它提供了一种处理日期和时间的方式,使得开发人员可以操作年、月、日、时、分、秒等各个时间单位。Calendar类使得计算时间间隔、获取特定时间段的日期变得非常容易。以下是一个使用Calendar类设置时间的简单示例:

import java.util.Calendar;

public class CalendarExample {

    public static void main(String[] args) {

        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, 2021);
        calendar.set(Calendar.MONTH, 5);
        calendar.set(Calendar.DAY_OF_MONTH, 30);
        calendar.set(Calendar.HOUR_OF_DAY, 16);
        calendar.set(Calendar.MINUTE, 38);
        calendar.set(Calendar.SECOND, 50);

        System.out.println("设置日期时间为:" + calendar.getTime());
    }
}

输出结果:

设置日期时间为:Wed Jun 30 16:38:50 CST 2021

Timestamp类

Timestamp类是一个具体类,继承了Date类,并增加了对SQL中日期和时间数据类型的支持。Timestamp类存储了自1970年1月1日00:00:00 GMT以来的毫秒数,并提供了许多方便的方法来处理时间戳。以下是一个使用Timestamp类将日期转换为时间戳的示例:

import java.sql.Timestamp;
import java.text.SimpleDateFormat;

public class TimestampExample {
    public static void main(String[] args) {

        String string = "2021-06-30 16:45:00";
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Timestamp timestamp = null;

        try {
            java.util.Date date = dateFormat.parse(string);
            timestamp = new Timestamp(date.getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }

        System.out.println("转换的时间戳为:" + timestamp.toString());
    }
}

输出结果:

转换的时间戳为:2021-06-30 16:45:00.0

相互转换

Date和Calendar之间的转换

Date类可以通过Calendar类的getTime()方法返回一个对应的时间戳,也就是毫秒数。同样,可以使用setTime()方法将Date对象转换为Calendar对象。以下是一个简单示例:

Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

Date和Timestamp之间的转换

Timestamp类继承了Date类,因此可以使用getTime()setTime()方法与Date类相互转换。以下是一个简单示例:

Date date = new Date();
Timestamp timestamp = new Timestamp(date.getTime());
date = new Date(timestamp.getTime());

Calendar和Timestamp之间的转换

可以使用getTime()setTime()方法将Calendar对象转换为Timestamp对象,反之亦然。以下是一个简单示例:

Calendar calendar = Calendar.getInstance();
Timestamp timestamp = new Timestamp(calendar.getTime().getTime());
calendar.setTimeInMillis(timestamp.getTime());

总结

本文对Java中的DateCalendarTimestamp类进行了详细介绍,介绍了它们的区别,以及相互之间的转换和使用。因为Java中涉及到日期和时间的计算非常频繁,因此了解这些类的用法非常重要。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中Date,Calendar,Timestamp的区别以及相互转换与使用 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • MyBatis学习教程之开发Dao的方法教程

    MyBatis学习教程之开发Dao的方法教程 简介 本教程将详细介绍如何使用MyBatis框架开发Dao层的方法。通过本教程,你将学习到如何使用MyBatis的基本CRUD操作,并且了解一些高级用法。 开发Dao层的基本步骤 步骤1:创建Mapper映射文件 在MyBatis中,开发Dao层首先要创建一个与数据库相对应的Mapper映射文件。在Mapper映…

    Java 2023年5月19日
    00
  • Java利用栈实现简易计算器功能

    为了实现Java利用栈实现简易计算器功能,我们可以使用栈来存储操作数和运算符,然后依次从左到右扫描表达式,并根据运算符的优先级进行计算。下面是具体的实现步骤: 1.将中缀表达式转换为后缀表达式 使用栈来转换中缀表达式为后缀表达式是比较常见的方法。具体步骤如下: 创建一个栈来保存运算符。 从左到右扫描中缀表达式。 如果当前扫描到的是操作数,则直接输出到后缀表达…

    Java 2023年5月19日
    00
  • 详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】

    详解js的延迟对象、跨域、模板引擎、弹出层、AJAX 本文主要介绍 JavaScript 中五个常用的技术点:延迟对象、跨域、模板引擎、弹出层和 AJAX。我们将使用示例来演示这五个技术点的应用。 延迟对象 延迟对象(Deferred Object)是 jQuery 中异步编程的核心概念之一。在 JavaScript 中,通常采用回调函数进行异步编程。而延迟…

    Java 2023年5月19日
    00
  • Java_Spring之Spring5 的新特性

    Java Spring之Spring5 的新特性 简介 Spring是一个著名的开源框架,它旨在简化企业级应用程序的开发。Spring5是Spring框架的最新版本,它引入了许多新的功能和改进,以使应用程序的开发和管理更加容易。本文将介绍一些Spring5的新特性,帮助您更好地了解Spring5的能力。 Spring5的新特性 1. 支持Java8 Spri…

    Java 2023年5月31日
    00
  • java组件smartupload实现上传文件功能

    下面是关于“java组件smartupload实现上传文件功能”的完整攻略,包含两个示例。 SmartUpload 简介 SmartUpload 是一个 Java 组件,能够方便地实现上传文件的功能。它提供了上传文件的基本方法,并可以使用 Java 类库自身的方法来读取这些文件。SmartUpload 支持批量上传,支持上传时的文件类型检查等功能。 Smar…

    Java 2023年5月19日
    00
  • SpringBoot超详细讲解@Enable*注解和@Import

    细致讲解@Enable*注解和@Import注解在SpringBoot中的用法: @Enable*注解 @Enable注解是SpringBoot中用来启用某些功能的注解,它们定义在org.springframework.boot.autoconfigure包中,以下是一些常用的@Enable注解: @EnableAutoConfiguration:自动配置,…

    Java 2023年5月19日
    00
  • JavaWeb文件上传下载实例讲解(酷炫的文件上传技术)

    下面是针对JavaWeb文件上传下载实例讲解(酷炫的文件上传技术)的详细攻略。 一、文件上传 1.准备工作 在进行文件上传之前,我们需要进行几项基础的准备工作: 在页面中加入文件上传表单,并定义表单的请求方式和处理该请求的servlet路径。 <form action="upload" method="post"…

    Java 2023年5月20日
    00
  • 详解spring boot jpa整合QueryDSL来简化复杂操作

    下面我来为你详细讲解“详解spring boot jpa整合QueryDSL来简化复杂操作”的完整攻略。 什么是QueryDSL QueryDSL 是一个DSL query 框架,基于类型安全,可以使用 Java而非 SQL 来查询数据。它支持多种后端数据库,包括 MySQL,PostgreSQL 和 SQL Server。QueryDSL提供了一种比直接写…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部