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

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

输出:

2020-10-16

2、Date转Datetime

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

输出:

2020-10-16 12:28:03.169

3、String转换为Date

String d = "2020-10-16";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd");
Date date = null;
try {
date = simpleDateFormat.parse(d);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date);

输出:

Fri Oct 16 00:00:00 CST 2020

4、String转换为java.sql.Date

String d = "2020-10-16";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
java.sql.Date date = null;
try {
Date parse = simpleDateFormat.parse(d);
date = new java.sql.Date(parse.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date);

输出:

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. 048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和

    048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目 ...

  2. 当安装、卸载件包时,出现依赖问题 error: Failed dependencies解决办法

    error: Failed dependencies:-- 依赖关系非常复杂,当你试图先安装任何一个包时都会出现这样的依赖关系错误,这时候你就应该强制安装了,我认为只要你把服务或软件需要的包都装上,强 ...

  3. matlab中reshape 重构数组

    来源:https://ww2.mathworks.cn/help/matlab/ref/reshape.html?searchHighlight=reshape&s_tid=doc_srcht ...

  4. Django ORM 引发的数据库 N+1 性能问题

    背景描述 最近在使用 Django 时,发现当调用 api 后,在数据库同一个进程下的事务中,出现了大量的数据库查询语句.调查后发现,是由于 Django ORM 的机制所引起. Django Obj ...

  5. JavaScript实时显示当前时间

    1.HTML部分 <div id="div1">显示当前时间!</div> 2.css部分 #div1 { width: 700px; height: 50 ...

  6. shell-的特殊变量-进程状态变量$$ $! $? $_详解

    一:shell的特殊变量-进程状态变量详解  1. 进程状态变量 $$ 获取当前shell的进程号(pid) $! 执行上一个指令的pid,上一个后台运行进程的进程号 $? 获取执行上一个指令的返回值 ...

  7. CRF基础知识以及如何实现Learning,Inference

    CRF:Conditional Random Field,即条件随机场. 首先介绍一下基础背景知识.机器学习中的分类问题可以分为硬分类和软分类.硬分类常见的模型有SVM.PLA.LDA等.SVM可以称 ...

  8. android中判断一个链接是否是有效的

    private boolean isValid(String urlString) { try { URL url = new URL(urlString); return URLUtil.isVal ...

  9. ubuntu19.10如何设置固定ip

    $ip a 看见系统中有两块网卡 lo: ...... ens33: ...... #cd /etc/netplan$ls目录下面有文件01-network-manager-all.yaml $sud ...

  10. Redis安装使用以及可能的算法实践

    layout: post title: 2017-12-05-Redis 入门 tags: - Redis - 实时特征 - UCB, Tompson sampling Redis 是什么? Redi ...