Date

  • Java中Date有两种,一种是java.util.Date另一种是java.sql.Date,sql这个Date是util的Date的子类,sql一般用在Dao持久层
  • 我们讨论util下的Date
  • 构造函数:
    • 常用的有Date() 和 Date(long date)
  • getTime():获取时间的毫秒值,从1970年开始计算
  • before()、after() 和 equals():比较日期

SimpleDateFormat

  • 日期格式化
  • 构造函数:SimpleDateFormat(pattern: "yyyy-MM-dd")
  • 常用的方法(格式化的结果都是按照构造方法中设置的格式化模式):
    • format(Date date):将Date日期转换为字符串
    • parse(String date):将字符串格式化为Date日期,字符串的格式要和pattern对应,否则抛出ParseException异常

Calendar

  • 日历类,Calendar为抽象类,由于Calendar的敏感性,需要通过静态方法创建:Calendar c = Calendar.getInstance()

常用方法

  1. get(int field)

    • get方法用来获取指定字段的值
    • Calendar.YEAR(获取年)、Calendar.MONTH(获取月) ...
    • Calendar的月份为0-11对应1-12月、星期是从周天开始计算的
  2. set(int field, int value)
    • set方法用来设置指定字段的值
    • value值要是转换过后的值,比如现在是10月,你要设置10月的话就得先减去1得到就,将value设置为9就是设置月份为10月
  3. add(int field, int amount)
    • add方法可以对指定日历字段的值进行加减操作,如果第二个参数为正数则加上偏移量,如果为负数则减去偏移量。
  4. getTime()
    • Calendar中的getTime方法并不是获取毫秒时刻,而是拿到对应的Date对象

Java8中用于计算时差的类

1. Period(以年月日来表示日期差)

  • 利用Period的静态方法between,将两个LocalDate进行计算
  • 在通过调用类的方法getYears()、getMonths())、getDays()来获取具体的差值

2. Duration(以秒与毫秒来表示时间差)

Date之间的各种转换

1、Date格式化然后转String

  1. Date date = new Date();
  2. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd");
  3. String format = simpleDateFormat.format(date);
  4. System.out.println(format);

输出:

  1. 2020-10-16

2、Date转Datetime

  1. Date date = new Date();
  2. long time = date.getTime();
  3. Timestamp timestamp = new Timestamp(time);
  4. System.out.println(timestamp);

输出:

  1. 2020-10-16 12:28:03.169

3、String转换为Date

  1. String d = "2020-10-16";
  2. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd");
  3. Date date = null;
  4. try {
  5. date = simpleDateFormat.parse(d);
  6. } catch (ParseException e) {
  7. e.printStackTrace();
  8. }
  9. System.out.println(date);

输出:

  1. Fri Oct 16 00:00:00 CST 2020

4、String转换为java.sql.Date

  1. String d = "2020-10-16";
  2. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  3. java.sql.Date date = null;
  4. try {
  5. Date parse = simpleDateFormat.parse(d);
  6. date = new java.sql.Date(parse.getTime());
  7. } catch (ParseException e) {
  8. e.printStackTrace();
  9. }
  10. System.out.println(date);

输出:

  1. 2020-10-16

Java中的有关日期的对象的更多相关文章

  1. Java中的时间日期处理

    程序就是输入——>处理——>输出.对数据的处理是程序员需要着重注意的地方,快速.高效的对数据进行处理时我们的追求.其中,时间日期的处理又尤为重要和平凡,此次,我将把Java中的时间日期处理 ...

  2. java中集合Collection转list对象

    参考:java中集合Collection转list对象 首先我的需求是获取到购物车列表,购物车列表是一个Map对象,构造方法获取购物项,这里购物项是Collection对象 // 购物项集合,K商品I ...

  3. (转)Java 中关于String的空对象(null) ,空值(empty),空格

    原文出处:Java 中关于String的空对象(null) ,空值(empty),空格 定义 空对象: String s = null; 空对象是指定义一个对象s,但是没有给该对象分配空间,即没有实例 ...

  4. Java中Date()类 日期转字符串、字符串转日期的问题(已解决)

    Java中Date()类 日期转字符串.字符串转日期的问题 今天在写东西的时候突然发现一个问题,就是先new 一个Date()然后将生成的值转为字符串, 然后再将转换后的字符串再次用new Date( ...

  5. Java中创建(实例化)对象的五种方式

    Java中创建(实例化)对象的五种方式1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反 ...

  6. 使用java中的反射获得object对象的属性值

    知识点:使用java中的反射获得object对象的属性值 一:场景 这两天开发代码时,调用别人的后台接口,返回值为Object对象(json形式的),我想获得object中指定的属性值,没有对应的ge ...

  7. Java中的mutable和immutable对象实例讲解

    1.mutable(可变)和immutable(不可变)类型的区别 可变类型的对象:提供了可以改变其内部数据值的操作,其内部的值可以被重新更改. 不可变数据类型:其内部的操作不会改变内部的值,一旦试图 ...

  8. java中使用Semaphore构建阻塞对象池

    java中使用Semaphore构建阻塞对象池 Semaphore是java 5中引入的概念,叫做计数信号量.主要用来控制同时访问某个特定资源的访问数量或者执行某个操作的数量. Semaphore中定 ...

  9. Java 中的时间日期 API

    自从 14 年发布 Java 8 以后,我们古老 java.util.Date 终于不再是我们 Java 里操作日期时间的唯一的选择. 其实 Java 里的日期时间的相关 API 一直为世猿诟病,不仅 ...

随机推荐

  1. spring-boot-route(四)全局异常处理

    在开发中,我们经常会使用try/catch块来捕获异常进行处理,如果有些代码中忘记捕获异常或者不可见的一些异常出现,就会响应给前端一些不友好的提示,这时候我们可以使用全局异常处理.这样就不用在代码中写 ...

  2. 记录从Winserver2012R2升级到Winserver2019

    升级系统是必不可少的,最近想搞虚拟化Hyper-V:于是着手需要装一台WIN server 2019. 手头有一台Winserver 2012R2,正好拿来测试升级,此博做一个记录. 操作流程:在升级 ...

  3. pytorch和tensorflow的爱恨情仇之张量

    pytorch和tensorflow的爱恨情仇之基本数据类型:https://www.cnblogs.com/xiximayou/p/13759451.html pytorch版本:1.6.0 ten ...

  4. 手把手教你AspNetCore WebApi:增删改查

    前言 小明已经创建与运行了WebApi项目,了解项目结构有哪些组成,并学会了怎么发布到IIS.基础已经建好,从现在开始要真正实现待办事项的功能了. 新建表 CREATE TABLE [dbo].[To ...

  5. 电机AB相编码器测速

    控制任务 检测编码器的脉冲并测速 电路设计 图1 直流电机带减速器和编码器 图2  编码器接线定义 编码器接线定义如下 M1:电机电源接口,绿色的 GND:编码器电源负极输入口,橙色的 C1:编码器A ...

  6. 【题解】CF1375D Replace by MEX

    \(\color{purple}{Link}\) \(\text{Solution:}\) 观察到题目要求操作次数不超过\(2n,\)且不必最小化操作次数,所以一定是构造题. 考虑将序列转化为\([0 ...

  7. JVM笔记五-堆区

    JVM笔记五-堆区 在JVM中,堆区是重中之重.通过前面文章的学习,我们知道了,栈区是不会有垃圾回收的,所以,经常说的垃圾回收,其实就是回收的是堆区的数据.在这里,我们将会看到传说中的,新生代.老年代 ...

  8. CF724G 【Xor-matic Number of the Graph】

    题目就不翻译了吧,应该写的很清楚了... 首先 \(,\) 不懂线性基的可以戳这里.知道了线性基\(,\) 但是从来没有写过线性基和图论相结合的\(,\) 可以戳这里. 好\(,\) 点完了这些前置技 ...

  9. 解决mvn clean install的报错The packaging for this project did not assign a file to the build artifact

    解决mvn clean install的报错The packaging for this project did not assign a file to the build artifact

  10. 重装Windows系统 入门详解 - 基础教程

    重装Windows系统 入门详解 - 基础教程 JERRY_Z. ~ 2020 / 10 / 13 转载请注明出处!️ 目录 重装Windows系统 入门详解 - 基础教程 一.说明 二.具体步骤 ( ...