java中的Date怎么比较日期
发布时间:2025-05-20 05:22:16 发布人:远客网络
一、java中的Date怎么比较日期
在java的程序里比较date类型的方法如下:
1、java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小,compareTo()方法的返回值,date1小于date2返回-1,date1大于date2返回1,相等返回0如下。
String beginTime="2018-07-28 14:42:32";
String endTime="2018-07-29 12:26:32";
SimpleDateFormat format= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1= format.parse(beginTime);
Date date2= format.parse(endTime);
int compareTo= date1.compareTo(date2);
System.out.println(compareTo);
2、通过Date自带的before()或者after()方法比较,如下。
String beginTime="2018-07-28 14:42:32";
String endTime="2018-07-29 12:26:32";
SimpleDateFormat format= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1= format.parse(beginTime);
Date date2= format.parse(endTime);
boolean before= date1.before(date2);
3、通过调用Date的getTime()方法获取到毫秒数来进行比较,如下。
String beginTime="2018-07-28 14:42:32";
String endTime="2018-07-29 12:26:32";
SimpleDateFormat format= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1= format.parse(beginTime);
Date date2= format.parse(endTime);
long beginMillisecond= date1.getTime();
long endMillisecond= date2.getTime();
System.out.println(beginMillisecond> endMillisecond);
1、Java编程技巧之一,return一个空的集合,而不是 null。如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素。这样你就不用去写一大堆”if else”判断null元素。
2、Java编程技巧之二,小心使用 String。因为字符串相加或者拼接的方式都会在对象池中查找字符串是否存在,如果不存在则创建,这样在拼接的过程中会产生大量中间过程的字符串,占用内存资源。
3、Java编程技巧之三,StringBuilder效率优于StringBuffer,但是StringBuffer线程安全。
参考资料来源:ImportNew-Java 8简明教程
二、java中如何计算出两个日期之间相差多少天
思路就是根据它们相差的毫秒数除以每天的毫秒数(60*60*24*1000),代码如下:
public static void main(String[] args) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(60*60*24*1000);
System.out.println("1987-01-01与 2010-01-01相隔"+daysBetween+"天");
Java使用以下三种方法来比较两个日期:
1、使用 getTime()方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
2、使用方法 before(),after()和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date(99, 2, 18))返回true。
3、使用 compareTo()方法,它是由 Comparable接口定义的,Date类实现了这个接口。
SimpleDateFormat是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat允许你选择任何用户自定义日期时间格式来运行
SimpleDateFormat ft= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
这一行代码确立了转换的格式,其中 yyyy是完整的公元年,MM是月份,dd是日期,HH:mm:ss是时、分、秒。
注意:有的格式大写,有的格式小写,例如 MM是月份,mm是分;HH是 24小时制,而 hh是 12小时制。
当前时间为: 2018-09-14 10:16:34
三、如何利用java代码计算两个日期之间的天数
在Java8以后的版本中,引入了java.time包,它提供了一套全新的日期和时间 API,可以更加方便、简洁地处理日期和时间。这套 API是基于 Joda-Time库设计的,解决了 Java旧版日期和时间 API(如 java.util.Date和 java.util.Calendar)的一些问题。
通过以下内容,我们可以学习到如何利用Java代码计算两个日期之间的天数:
首先,我们使用LocalDate.of()方法创建两个日期对象。
然后,利用 ChronoUnit.DAYS.between()方法计算这两个日期之间的天数。请注意,这个计算会忽略时间部分,只考虑日期部分。
在此示例中,我们创建了两个日期对象,并使用 ChronoUnit.DAYS.between()方法计算它们之间的天数。
入门到进阶阶段的技术路线如下:
入门:学习Java SE基础,包括Java Web(含数据库、H5、js、vue)。
中级:深入学习Maven、Git、SSM框架、MybatisPlus、Spring Boot,通过《传智健康》和《瑞吉外卖》项目实战加深理解。
进阶:深入学习Spring Cloud(微服务开发)、Dubbo、Zookeeper、RabbitMQ、RocketMQ、Docker、Redis、MongoDB、Elasticsearch、MySQL进阶。
项目实战经验:参与《SaaSiHRM》企业服务、《好客租房》生活服务、权限管理一体化解决方案、短信网关平台项目。
面试准备:参加Java大厂面试专题课,提升面试技能。
工作后可进一步学习的技术包括:JDK8-15新特性、编程强化、数据库强化、安全框架SpringSecurity、报表技术、模板引擎VelocityTools、工作流Activiti7等。