-
2022-02-14 14:41:21
Java日期的大小比较是工作中常会遇到的问题,目前我找到3种常用的方法。
一、日期为String类型
可以使用String的compareTo方法,
注意日期格式必须一致。String date1 = "20220214"; String date2 = "20210114"; if(date1.compareTo(date2) > 0) { System.out.println("date1 大于 date2"); }
二、日期为date类型
使用Date类型的before() 或 after() 方法
三、转换为秒比较大小
将日期转换为Date类型,使用getTime()方法,比较两日期的大小;
Date date1=df.parse(beginTime); Date date2=df.parse(endTime); long long1 =date1.getTime(); long long2= date2.getTime(); if(long1 > long2){ System.out.println("date1 > date2"); }
更多相关内容 -
java日期格式
2022-01-06 10:53:571、java指定日期格式(精确到微秒) yyyy-MM-dd HH:mm:ss.SSSSSS y-年,M-月,d-日,H-小时(24小时制),m-分钟,s-秒,S-毫秒 java只能取到毫秒,微秒级别全是零,但是可以取出到微秒的这种格式化时间戳形式: ...1、java指定日期格式(精确到微秒)
yyyy-MM-dd HH:mm:ss.SSSSSS
y-年,M-月,d-日,H-24小时制(0-23),h-12小时制(1-12),m-分钟,s-秒,S-毫秒
java只能取到毫秒,微秒级别全是零,但是可以取出到微秒的这种格式化时间戳形式:
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS"); LocalDateTime now = LocalDateTime.now(); System.out.println(now.format(dateTimeFormatter)); //2022-01-06 11:18:20.044000
2、Oracle指定日期格式(精确到微秒)
sql书写格式: TO_CHAR(systimestamp,'YYYY-MM-DD HH24:MI:SS.FF6')
java日期格式含义(全):
- yyyy:年
- MM:月
- dd:日
- hh:1~12小时制(1-12)
- HH:24小时制(0-23)
- mm:分
- ss:秒
- S:毫秒
- E:星期几
- D:一年中的第几天
- F:一月中的第几个星期(会把这个月总共过的天数除以7)
- w:一年中的第几个星期
- W:一月中的第几星期(会根据实际情况来算)
- a:上下午标识
- k:和HH差不多,表示一天24小时制(1-24)
- K:和hh差不多,表示一天12小时制(0-11)
- z:表示时区
-
JAVA日期的计算
2021-06-25 18:47:04对于日期的计算,本人介绍Date和Calendar 一、Date import java.util.Date; /** * Date日期创建 */ public class TestDate { public static void main(String[] args) { //1、创建java.util.Date,可以表示...目录
一、Date
import java.util.Date; /** * Date日期创建 */ public class TestDate { public static void main(String[] args) { //1、创建java.util.Date,可以表示一个具体的时间点 Date date = new Date(); System.out.println(date); } }
运行结果:
这样的运行结果很难让我们中国人看懂,所有我们可以使用SimpleDateFormat进行转换成我们能看懂的日期
/** * Date日期创建 */ public class TestDate { public static void main(String[] args) { //1、创建java.util.Date,可以表示一个具体的时间点 Date date = new Date(); System.out.println(date); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = sdf.format(date); System.out.println(format); } }
运行结果:
那么我怎么对Date的时间进行计算呢,我们就要用到Date本身的getTime()属性来获取Date底层维护的毫秒值
import java.text.SimpleDateFormat; import java.util.Date; /** * Date日期创建 */ public class TestDate { public static void main(String[] args) { //1、创建java.util.Date,可以表示一个具体的时间点 Date date = new Date(); System.out.println(date); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format1 = sdf.format(date); System.out.println(format1); long time = date.getTime(); //Date内部维护了一个long值, // 这个long值是表示从1970年到目前为止的毫秒数 System.out.println(time); //我们可以对这个毫秒值进行运行维护,比如说在这个基础上加上一天。 time += 24*60*60*1000; //然后对我们处理后的long重新设置 date.setTime(time); String format2 = sdf.format(date); System.out.println(format2); } }
运行结果:
所有在Date中对时间的修改,只能从它底层维护的long值进行下手,十分的麻烦,本来我人就
勤快,我肯定不会用这种方式来进行时间的计算。对于时间的计算,我更加倾向于Calendar二、Calendar
Calendar它本身是一个抽象类,规定了操作时间的相关方法。Calendar它内部提供了一个静态方法getInstance,该方法可以根据当前系统所在地区获取一个适用的实现类,通常返回的就是GregorianCalendar。话不多说,上代码
import java.util.Calendar; /** * 关于Calendar接口的使用 */ public class DemoCalendar { public static void main(String[] args) { //默认创建出来就是当前的系统时间 Calendar calendar = Calendar.getInstance(); System.out.println(calendar); } }
运行结果:
比Date运行出来的结果还要难看,所以还是要进行转换,怎么进行转化,我们就要使用到
getTime()和setTime,它们分别有什么作用?
2.1Calendar与Date的相互转换
getTime():是将当前的Calendar所表示的时间以Date的形式返回======Calendar -> Date
setTime(date):是使当前Calendar表示给定的Date所表示的时间======Date -> Calendar
import java.util.Calendar; import java.util.Date; /** * 关于Calendar接口的使用 */ public class DemoCalendar { public static void main(String[] args) { //默认创建出来就是当前的系统时间 Calendar calendar = Calendar.getInstance(); System.out.println(calendar); //Calendar->Date Date date = calendar.getTime(); System.out.println(date); //Date->Calendar calendar.setTime(date); } }
运行结果:
2.2获取时间的年、月、日、时、分、秒
Calendar怎么进行运算,我们可以先看看,Calendar怎么获取当前的年、月、日、时、分、秒
可以用int get(int field)来获取给定时间分量所对应的值,时间分量应当使用Calendar提供的常量
import java.util.Calendar; import java.util.Date; /** * 关于Calendar接口的使用 */ public class DemoCalendar { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); //获取年 int year = calendar.get(Calendar.YEAR); System.out.println("当前年:"+year); //获取月 注意,月从0开始 int moth = calendar.get(Calendar.MONTH); System.out.println("当前月:"+moth+1); //获取日 /* * 跟天相关的常量 * DATE 月中的天 * DAY_OF_MONTH 月中的天 * DAY_OF_WEEK 星期中的天 * DAY_OF_YEAR 年中的天 */ int day = calendar.get(Calendar.DATE); System.out.println("本月的当前天:"+day); //获取时 int hour = calendar.get(Calendar.HOUR_OF_DAY); System.out.println("当前时:"+hour); //获取分 int m = calendar.get(Calendar.MINUTE); System.out.println("当前分钟:"+m); //获取秒 int s = calendar.get(Calendar.SECOND); System.out.println("当前秒:"+s); System.out.println(year + "-" + (moth + 1) + "-" + day + " " + hour + ":" + m + ":" + s); } }
运行结果:
2.3对时间的设置
当然,Calendar也提共了对于指定时间分量设置值得方法 void set(int field,int value)
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 关于Calendar接口的使用 */ public class DemoCalendar { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); /** * 举个案例,设置一个时间值为2008-08-08 20:08:08 */ calendar.set(Calendar.YEAR, 2008); calendar.set(Calendar.MONTH, Calendar.AUGUST); calendar.set(Calendar.DAY_OF_MONTH, 8); calendar.set(Calendar.HOUR_OF_DAY, 20); calendar.set(Calendar.MINUTE, 8); calendar.set(Calendar.SECOND, 8); //将设置好的时间进行转化 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = sdf.format(calendar.getTime()); System.out.println(format); } }
运行结果
2.4获取当前天数的最大值
我们也可以通过Calendar提供的方法获取当年,当月的天数
/** * 获取给定时间分量所允许的最大值,参照日期为当前Calendar所表示的日期 */ public class CalendarDemo { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); int days = calendar.getActualMaximum(Calendar.DAY_OF_YEAR); System.out.println("今年一共:" + days + "天"); days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println("当月一共:" + days + "天"); } }
运行结果:
2.5Calendar的时间运算
好了,接下来我们来进行Calendar的时间运算
/** * 举个栗子: * 再过3个月零5天就是我爷爷80岁大寿 * 请问,爷爷的出生日期?以及星期几? * */ public class DemoCalendar { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); //先算出爷爷的大寿 calendar.add(Calendar.MONTH, 3); calendar.add(Calendar.DAY_OF_YEAR, 5); //开始计算爷爷的出生日期 calendar.add(Calendar.YEAR, -80); //进行转化获取可观的时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E"); String format = sdf.format(calendar.getTime()); System.out.println("爷爷的出生日期是:"+format); } }
运行结果:
-
Java日期时间操作的方法
2021-03-06 02:53:10本文实例为大家分享了java日期时间基本操作方法,供大家参考,具体内容如下1. 获得Calendar实例:Calendar c = Calendar.getInstance();2. 定义日期/时间的格式:SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM...本文实例为大家分享了java日期时间基本操作方法,供大家参考,具体内容如下
1. 获得Calendar实例:Calendar c = Calendar.getInstance();
2. 定义日期/时间的格式:SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
3. 把日期/时间转换成固定格式,使用SimpleDateFormat的format()方法:String datetime = sdf.format(c.getTime());
4. 把字符串转换成日期/时间,使用SimpleDateFormat的parse()方法:Date d = sdf3.parse("2016-08-08 16:43:00");
5. 日期/时间的增加,减少,使用Calendar的add()方法,如将日期减少100天:c.add(Calendar.DATE, -100);
6. 日期/时间的设置,使用Calendar的set()方法,如将小时设置为0时:c.set(Calendar.HOUR_OF_DAY, 0);
例子:
package myCalendar;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class myCalendar {
public static void main(String args[]) throws Exception{
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf1 =new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat sdf2 =new SimpleDateFormat("HHmmss");
SimpleDateFormat sdf3 =new SimpleDateFormat("yyyyMMddHHmmss");
SimpleDateFormat sdf4 =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = sdf1.format(c.getTime());
System.out.println(date);
String time = sdf2.format(c.getTime());
System.out.println(time);
String dt = "20160808162405";
Date d = sdf3.parse(dt);
dt = sdf4.format(d);
c.setTime(d);
c.add(Calendar.DATE, -100);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
System.out.println("100天前:" + sdf4.format(c.getTime()));
c.add(Calendar.DATE, 200);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
System.out.println("100天后:" + sdf4.format(c.getTime()));
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
-
Java日期格式化
2019-07-09 12:08:19Java日期格式化 public class DateUtils { /** 时间格式(yyyy-MM-dd) */ public final static StringDATE_PATTERN ="yyyy-MM-dd"; /** 时间格式(yyyy-MM-dd HH:mm:ss) */ public final static StringDATE_TIME... -
java 日期转时间戳,时间戳转为日期
2021-02-12 19:19:59import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class test {public static void main(String[] args) {Date d = new Date();String beginDate = "... -
java日期和时间戳格式互转
2022-03-17 13:22:06// 将日期格式转换成时间戳 public static void main(String[] args) throws Exception{ String time = "2018-05-12 12:30:59"; Date parse = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time); Long ... -
java 日期转换成字符串
2022-04-13 15:25:31日期转换成字符串格式 -
一文告诉你Java日期时间API到底有多烂
2021-01-27 06:45:54罪状七:Calendar难当大任 从JDK 1.1 开始,Java日期时间API似乎进步了些,引入了Calendar类,并且对职责进行了划分: Calendar类:日期和时间字段之间转换 DateFormat类:格式化和解析字符串 Date类:只用来承载... -
java日期减去天数得日期_Java日期添加天数,减去天数,日历
2020-07-19 22:24:52java日期减去天数得日期Sometimes while working on Java Date, we need to add or subtract some days from it. Here I am providing java example to add days to java date or subtract days to java date object... -
Java日期格式化(DateFormat类)
2021-03-01 08:32:40格式化日期表示将日期/时间格式转换为预先定义的日期/时间格式...在 Java 中,可以使用 DateFormat 类和 SimpleDateFormat 类和String类来格式化日期,下面详细介绍这两个格式化日期类的使用。DateFormat 类DateForm... -
Java日期比较大小的几种方式
2020-11-15 12:09:31日期比较在开发里面很是常见,我也踩了不少坑,本文就列举一下Java日期比较的方式 一、字符串String的日期比较 String型的日期通过compareTo()来比较,因为String实现了comparable接口 这里我们比较的是endDate、... -
java日期加减月份
2021-01-07 14:53:15java日期加减月份 Calendar cal = Calendar.getInstance(); Date date = new Date(); cal.setTime(date); cal.add(Calendar.MONTH,5); SimpleDateFormat sj = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ... -
java日期月份转英文格式
2021-02-28 09:53:30如今业务需要在循环中转换很多的日期格式,具体要求如下:// 2019-04-10 >> Apr 10 2019也就是月份转换成英文并放在头部,并在jsp用Struts标签展示出来。java中action。因为有存在Struts自动裁剪年份的情况,... -
Java日期String和Date的转换
2022-02-14 14:55:29一、String 转 Date String ds=new String("2022-02-14"); Date sd=df.parse(ds); 二、Date 转 String Date d=new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String ds=df.format(d)... -
JAVA 日期格式化
2019-07-07 20:39:47最近项目中需要用到SimpleDateFormat 格式化日期,但是因为对日期格式的不熟练...java提供了预定义的日期格式,预定义的日期格式可以满足绝大多数的场景需要。 格式化日期需要两步: 1、通过DateFormat.getDate...... -
Java日期计算
2019-04-15 14:30:00Java日期计算,推荐使用Calendar进行日期加减, 代码示例: public static String calFullDate(Date date, int yearNum, int monthNum, int dateNum,int hourNum) { String result = ""; try { SimpleDate... -
java 日期
2022-03-16 17:52:29java selenium自动化项目 时间 @Test public void date(){ Calendar cal = Calendar.getInstance(); //日历对象 cal.add(Calendar.DATE,20); //20天后的日期 String Day = new SimpleDateFormat("yyyy-MM-dd").... -
Java日期解析具有微秒或纳秒精度
2021-03-01 07:54:25java.time SimpleDateFormat和相关的java.util.Date/.Calendar类现在已经过时了Java 8(Tutorial)中的新java.time软件包. 新的java.time类支持nanosecond分辨率.该支持包括解析和生成九位数的小数秒.例如,当您使用... -
JAVA 日期加减计算
2019-08-01 19:46:551.获取当前系统时间 Date date = new Date(); 2.实现时间的加减的两种方法 第一种:用java.text.SimpleDateFormat来实现 SimpleDateFormat df=new ...System.out.println("今天的日期:"+df.format(date... -
java 日期校验yyyymmdd
2018-09-29 11:10:06public class DateUtil { ... * 判断参数的格式是否为“yyyyMMdd”格式的合法日期字符串 * * @author Liang.Wang * @since 02/24/15 * @param str * @return true/false */ public stat... -
java日期中文格式转日期格式
2019-09-29 11:47:56java日期中文格式转日期格式 如:2019年10月20日转成日期格式 字符串转日期: public static Date StrToDate(String str) { SimpleDateFormat format = new SimpleDateFormat("yyyy年M月dd日"); Date date = ... -
JAVA日期格式输出月度前面不想被自动补0
2021-03-24 10:10:30JAVA日期格式输出月份前面不想被自动补0JAVA日期格式输出月份前面不想被自动补0,那么就用SimpleDateFormat("M/dd/yyyy");,一个M。如果想被自动补0,那么就用MM。SimpleDateFormat("MM/dd/yyyy");/*** 返回 2/15/... -
Java日期Date类,格式化,年月日时分秒星期
2022-03-21 20:55:311.由java.util包提供 2.封装了当前日期和时间 3.共有两个构造函数, 无参构造:Date() 使用当前日期及时间初始化对象 有参构造:Date(long number)参数为毫秒数,从1970年1月1日起的 方法 1.after(Date )当前... -
JAVA 日期Date加减整理
2018-07-30 23:16:25一、充分利用...import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateTestUtil { public static void main(String[] args) throws Exception... -
java日期和毫秒值的相互转化
2019-01-30 15:48:08日期和毫秒值的相互转化1.日期转毫秒2.毫秒转日期3.日期的格式化方法一:(常用的)需要将日期转为yyyy-MM-dd格式的方法二:使用simpleDateFormat4.Calendar类 (日期类) 1.日期转毫秒 使用getTime()方法就可以... -
android java日期计算工具
2016-08-11 17:06:24android java日期计算工具 -
java日期格式(年月日时分秒毫秒)
2021-03-16 15:23:57java日期格式(年月日时分秒毫秒)2020-08-13 07:09阅读数 79package test.remote.tools.combine; import java.text.SimpleDateFormat; importjava.util.Calendar;import java.util.Date; import java.util.... -
JAVA 日期时间比较
2018-08-13 14:44:16JAVA 日期时间比较 SimpleDateFormat的format方法将日期型转化成时间或日期的字符串,然后再比较字符串。 String startTimeStr = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SSS").format(new Date());/...