Date类(Date、SimpleDateFormat和Calendar)使用

2023-11-11

1.     Date类与long数据类型的转型

2.     SimpleDateFormat类的使用

3.     Calendar类的使用

如果要操作日期一定要使用日期的处理类。


1、Java.util.Date类

范例:

package com.lohas.demo.date;

import java.util.Date;

public class TestDateDemo {

    public static voidmain(String[] args) {

        Date date = newDate();

       System.out.println(date);

    }

执行结果:

Sat Apr 21 09:27:13 CST 2018

 

虽然Date类的对象可以取得当前的日期时间,但是结果,这个日期的可读性不适合中国人。

一直强调,日期时间=long数据内容。这一点Date类上很好体现

        .构造方法:public Date(long date)
        .Datelong型返回:public long getTime()
范例:转换
package com.lohas.demo.date;
import java.util.Date;
public class TestDateDemo {
    public static void main(String[] args) {
        Date date = new Date();//Date对象
        long num = date.getTime();//Datelong数据返回
        System.out.println(num);
        System.out.println(new Date(num * 2));//long >> Date
    }
}

运行结果:

1524274758394

Mon Aug 0911:18:36 CST 2066

 

在实际的使用过程之中,很少会出现这样的转换,但是至少你的头脑中应该清楚,long与Date可以互相转换。

 

2、日期格式化:SimpleDateFormat

Date虽然可以直接进行日期时间的取得,但是大部分情况这样的日期时间取得并不好用,因为它给出的日期时间格式我们很多人看不懂。所以在java中考虑到了日期的显示格式要求。那么往往最终都会按照String进行显示。

如果要想实现这样的格式化操作,可以使用java.text.SimpleDateFormat类完成。

java.lang.Object

 java.text.Format

  java.text.DateFormat

   java.text.SimpleDateFormat

        .构造方法:public SimpleDateFormat(String pattern)

--格式化标记:年(yyyy)、月(MM)、日(dd)、时(HH)、分(mm)、秒(ss)、毫秒(SSS)

         .将日期格式化为字符串:
                       publicfinal String format(Date date)

        .将字符串变为日期:

                public Date parse(String source)throws ParseException

 

范例:将日期格式化为字符串

package com.lohas.demo.date;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class SimpleDateFormatDemo {

    public static voidmain(String[] args) {

        Date date = newDate();

       System.out.println("当前日期: " + date);

        SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");

        String str =sdf.format(date);//将日期格式化字符串

       System.out.println("Date==>>String: " + str);

        Date date1 = null;

        try {

             date1 =sdf.parse(str);将字符串格式化日期

        } catch(ParseException e) {

           e.printStackTrace();

        }

       System.out.println("String==>>date: " + date1);

    }

}

 

总结:现在为止String、基本类型、Date已经实现了彻底的转换贯通;

String变为基本类型:包装类

基本类型变为String:  String.ValueOf()

Date与String转换: SimpleDateFormat

 

3、Calendar类

Calendar主要的功能是可以进行日期时间的拼凑使用,。Calendar本身是一个抽象类,但是现在可以直接利用这个类中提供的static方法进行实例化对象的取得:
public static Calendar getInstance()
随后可以利用Calendar类中的一个方法取得指定的日期时间数据:                public int get(int field)
该方法需要使用一些特定的常量。
package com.lohas.demo.date;
import java.util.Calendar;
public class CalendarDemo {
    public static void main(String[] args) {
        //取得Calendar类的实例化对象
        Calendar calendar = Calendar.getInstance();
        StringBuffer sb = new StringBuffer();
        sb.append(calendar.get(Calendar.YEAR)).append("");
        sb.append(calendar.get(Calendar.MONTH) + 1).append("");
        sb.append(calendar.get(Calendar.DAY_OF_MONTH)).append("");
        sb.append(calendar.get(Calendar.HOUR_OF_DAY)).append("");
        sb.append(calendar.get(Calendar.MINUTE)).append("");
        sb.append(calendar.get(Calendar.SECOND)).append("");
        System.out.println(sb);
    }
}
运行结果:201842111130
使用Calendar的好处是可以方便计算出日期或时间之间的间隔。

总结:

java.util.Date代表的就是日期时间
SimpleDateFormat可以实现字符串与日期间的转换操作
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Date类(Date、SimpleDateFormat和Calendar)使用 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • java动态规划,求最大子段和,并且求出开始位置,结束位置

    public static void main String args int x 1 3 2 11 8 4 13 5 4 8 5 System out println 最大子段和为 MaxAdd x private static int
  • 基础设计一——FPGA学习笔记<2>

    目录 零 设计流程 一 按键点亮LED灯 1 硬件资源 2 项目设计 3 波形设计 4 创建Vivado工程 编辑 lt 1 gt 添加设计文件 lt 2 gt 添加仿真文件 5 引脚约束 6 生成比特流文件 7 下载验证 8 程序固化 二
  • for-loop 与 json.Unmarshal 性能分析概要

    原文地址 for loop 与 json Unmarshal 性能分析概要 前言 在项目中 常常会遇到循环交换赋值的数据处理场景 尤其是 RPC 数据交互格式要转为 Protobuf 赋值是无法避免的 一般会有如下几种做法 for for
  • Spring入门概述及基本知识点

    Spring是什么 我们常说的Spring 其实在官网中全称是SpringFrameWork Spring是一个轻量级 非入侵式的Java开发框架 主要用于业务层 和整合其他层 解决了业务层和表现层 持久层的耦合问题 将面向接口编程贯穿整个
  • boost介绍

    boost是一个准标准库 相当于STL的延续和扩充 它的设计理念和STL比较接近 都是利用泛型让复用达到最大化 不过对比STL boost更加实用 STL集中在算法部分 而boost包含了不少工具类 可以完成比较具体的工作 boost主要包
  • CVPR21 - BasicVSR:简单有效的视频超分辨率Baseline

    文章目录 原文信息 初识 相知 组件分析 BasicVSR IconVSR 部分实验 回顾 原文信息 原文链接 初识 相比于图像超分 视频超分 VSR Video Super Resolution 显然是一件更具挑战性的任务 视频超分比图像
  • Two slices reporting being the first in the same frame. 和 Could not find ref with POCXX问题

    hevc 000001716438fc00 Two slices reporting being the first in the same frame hevc 000001716439ec80 Could not find ref wi
  • 黑马并发编程(AQS源码分析、线程池)

    AQS源码分析 线程池 8 线程池 1 自定义线程池 阻塞队列 优化队列 线程池 执行和线程处理设计 线程池执行的整个思路 阻塞添加 拒绝策略 2 ThreadExecutor 线程池状态 线程池参数 拒绝策略 newFixedThread
  • 本地上传文件到Linux服务器

    问题描述 如何将本地文件上传至Linux服务器上 这里分别以Windows和Ubuntu系统为例 解决方法 scp filename username IP home directory 举个例子 scp data zip zhangsan
  • 打造利器Qt Creator:代码todo工具的使用

    打造利器Qt Creator 代码todo工具的使用 前言 俗话说 工欲善其事必先利其器 工作生活中 能有一款出色易用 高效简便的工具 对提高效率 达成价值有着莫大的影响 Qt是一套C 库 封装了许多好用的模块和功能 且带有先进的GUI设计
  • 【VUE】vue报错“‘vue-cli-service‘不是内部或外部命令,也不是...”的解决办法

    问题描述 项目执行npm run serve后报错 产生原因 最大概率原因 由于在该代码中含有node module依赖包 再拷贝到其他计算机时 项目路径发生变化 导致找不到vue cli service于是报错 其他出错情况 见下文扩展
  • 如何更好的利用区块链API

    区块链允许数据提供者和消费者直接在单个开放系统中交易信息 而不是订阅世界各地的数十个集中服务 并编写他们的软件来与每个API进行通信 阅读此区块链API教程 了解如何根据你的特定需求使用它 API 应用程序编程接口 是单个计算机程序可以用来
  • synchronized和ReentrantLock的比较

    六 synchronized和ReentrantLock的比较 1 区别 1 Lock是一个接口 而synchronized是Java中的关键字 synchronized是内置的语言实现 2 synchronized在发生异常时 会自动释放
  • IDEA 的 maven项目 Plugins以及Dependencies 爆红 红波浪线

    IntelliJ idea新建Maven项目 Plugins以及Dependencies下有红色波浪线 如图 一 配置maven的Local repository 点击File gt Settings gt Build Execution
  • 使用stream下载文件避坑-》堆内存溢出的原因

    场景 下载80MB的文zip文件正常 大文件就下载不下来 下载为0KB 原因 下载大文件耗时间 设置了超时时间 其实文件没有下载下来 conn setConnectTimeout 3 1000 并不是上面那个原因 这段代码表示通过 Http
  • 基于LSTM的交通工具轨迹预测

    网络上利用LSTM预测轨迹的文章不多 仅有的几篇比较粗略 本文对一些大佬开源的代码进行修改 增添了轨迹连续预测代码 不足之处欢迎批评 本文参考Muzi Water大佬的文章 LSTM模型 轨迹经纬度预测 https blog csdn ne
  • 2022 年十大 Python Web 开发框架

    1 Django Django 框架是任何 Web 开发公司的首选 开发人员使用此框架来开发高质量标准的复杂 Web 和移动应用程序 由于其开源特性 Django 具有成本效益 但在其他有助于开发人员创建 API 和业务类 Web 应用程序
  • 大题---砝码称重(贪心算法)

    5个砝码 用天平称重时 我们希望用尽可能少的砝码组合称出尽可能多的重量 如果只有5个砝码 重量分别是1 3 9 27 81 则它们可以组合称出1到121之间任意整数重量 砝码允许放在左右两个盘中 本题目要求编程实现 对用户给定的重量 给出砝
  • Redis多机数据库实现

    Redis多机数据库实现 为 Redis设计与实现 笔记 复制 客户端可以使用SLAVEOF命令将指定服务器设置为该服务器的主服务器 127 0 0 1 12345 gt SLAVEOF 127 0 0 1 6379 127 0 0 1 6
  • Date类(Date、SimpleDateFormat和Calendar)使用

    1 Date类与long数据类型的转型 2 SimpleDateFormat类的使用 3 Calendar类的使用 如果要操作日期一定要使用日期的处理类 1 Java util Date类 范例 package com lohas demo