java时间比较3种方式
1 使用before和after
Date1.before(Date2),当Date1小于Date2时,返回TRUE,当大于等于时,返回false;
Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时,返回false;
public class Tet {public static void main(String[] args) throws InterruptedException {Date d1 = new Date();Thread.sleep(300);Date d2 = new Date();System.out.println(d1.before(d2));System.out.println(d1.after(d2));}
}
before和after底层原理其实还是转换成为了毫秒
public class Date{public boolean before(Date when) {return getMillisOf(this) < getMillisOf(when);}public boolean after(Date when) {return getMillisOf(this) > getMillisOf(when);}static final long getMillisOf(Date date) {if (date.cdate == null || date.cdate.isNormalized()) {return date.fastTime;}BaseCalendar.Date d = (BaseCalendar.Date) date.cdate.clone();return gcal.getTime(d);}}
2 使用getTime() 转换成为毫秒
public class Test {public static void main(String[] args) throws InterruptedException {Date d1 = new Date();//转换为毫秒long d1Ms = d1.getTime();Thread.sleep(300);Date d2 = new Date();//转换为毫秒long d2Ms = d2.getTime();System.out.println(d1Ms < d2Ms);}
}
getTime() 底层也是获取了毫秒数.
public class Date{public long getTime() {return getTimeImpl();}private final long getTimeImpl() {if (cdate != null && !cdate.isNormalized()) {normalize();}return fastTime;}
}
3 转换为字符串比较。compareTo()
将日期转换为字符串,然后使用compareTo()函数
compareTo()返回结果说明:
如果参数字符串等于此字符串,则返回值 0;
如果此字符串小于字符串参数,则返回一个小于 0 的值;
如果此字符串大于字符串参数,则返回一个大于 0 的值。
public class Test {public static void main(String[] args) throws InterruptedException {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date d1 = new Date();//转换为字符串String d1Str = df.format(d1);Thread.sleep(2000);Date d2 = new Date();//转换为字符串String s2Str = df.format(d2);int ret = d1Str.compareTo(s2Str);System.out.println(ret);}
}
字符串转日期
SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
String ds=new String("2017-06-09 10:22:22");
Date sd=sdf.parse(ds);
技术交流
欢迎关注我的微信公众号:程序员大宝。一个乐于分享的程序员!关注免费领取架构师学习资料和精选大厂高频面试题库。
java时间比较3种方式相关推荐
- java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...
转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...
- Java获取当前时间的四种方式
面试时被问到如何获取系统当前时间,平时没有怎么注意这个问题,这里整理一下 import java.text.SimpleDateFormat; import java.util.Calendar; i ...
- mysql java 日期格式化_(转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...
java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...
- Java操作Excel三种方式POI、Hutool、EasyExcel
Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...
- java实现线程三种方式_详解三种java实现多线程的方式
java中实现多线程的方法有两种:继承Thread类和实现runnable接口. 1.继承Thread类,重写父类run()方法 public class thread1 extends Thread ...
- Java 创建对象的 6 种方式,总有一种适合你
创建对象的 6 种方式 假设有个女朋友类: @Data @NoArgsConstructor @AllArgsConstructor class GirlFriend {private String ...
- Java技术分享:升级所安装Java版本的两种方式
在进行Java开发的时候我们可能会需要升级所安装的Java版本,那么你知道应该如何安装吗?小千今天就来给大家介绍两种方式. 一.卸载掉原本安装的Java,下载最新安装包安装即可. 这个步骤就不介绍了, ...
- Oracle 查询当前系统时间的几种方式
2019独角兽企业重金招聘Python工程师标准>>> Oracle 获取当前系统时间的几种方式: /* Oracle使用计算机操作系统的当前日期和时间. SYSDATE:可将Sys ...
- java创建对象的五种方式
java创建对象的五种方式 一.使用new关键字 二.使用clone方法 三.使用反序列化 四.使用反射 五.使用Unsafe 一.使用new关键字 如 User user=new User(); 执 ...
最新文章
- 转载 干货 | 陪伴我学习NLP、知识图谱的那些资源(教程+书籍+网站+工具+论文...可以说很全面了)
- pyhton 安装pip 以及 numpy (解决python:ModuleNotFoundError:No module named numpy 等类似缺包问题
- 深度学习的核心:掌握训练数据的方法
- 思科交换机配置试题_(思科配置试题可以略过)
- css怎样将图片设置成正方形,而且随着浏览器窗口大小的改变而自适应缩放
- 怎样将python的文件转化为windows的可执行程序
- ADO.NET Entity Framework -Code Fisrt 开篇(一)
- spark异常 - Null value appeared in non-nullable field
- spring基于注解的 IOC 配置ioc实现crud
- Redis管理及监控工具treeNMS
- c语言sinx的幂级数展开式,sinx的幂级数展开式问题?
- 计算机系统英语作文结尾万能句子,简单英语作文万能句子 开头结尾套用句子...
- css 全文字体大小,CSS 字体大小
- Access-Control-Allow- 跨域CORS 的使用
- [每天一个知识点]12-Maven怎么读
- QuTrunk与Paddle结合实践--VQA算法示例
- 腐烂的橘子(广度优先搜索)(考虑同时搜索)
- “创药网”-创新药领域专业资讯网站​
- 最详细AMD Ryzen CPU,VMware 15安装macOS 10.15.x Catalina 记录(第一篇)
- 医学四视图-007-增加按钮,增加文档提示