Java小白入门200例62之java中日期查询常用实例

Posted 编程界明世隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小白入门200例62之java中日期查询常用实例相关的知识,希望对你有一定的参考价值。

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

引言

很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  61.java中Date日期类型的大小比较
►下一篇待更新     

实例1

获取指定日期所在周的周一至周日 日期

package demo.demo62;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Demo1 {

	public static void main(String[] args) {
		//当天,测试的日期正好是2021-09-13
		Date date = new Date();
		
		System.out.println(getMonday(date));
	}
	
	// 获取指定日期所在周的周一日期
	public static String getMonday(Date date) {
	    Calendar c = Calendar.getInstance();
	    //将日期设置进去
	    c.setTime(date);
	    //设置Monday
	    c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
	    //格式化返回
	    return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
	}

}

运行结果:

2021-09-13

实例2

获取两个日期间相差的天数,如果返回的是负数,说明时间1小于时间2

package demo.demo62;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Demo2 {

	public static void main(String[] args) {
		String s1 = "2021-09-10";
		String s2 = "2021-09-13";
		System.out.println(getDiff(s1, s2));
	}
	
	// 获取两个日期间相差的天数
	public static int getDiff(String s1, String s2) {
		SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
	    int day = 0;
	    try {
	        Date date = myFormatter.parse(s1);
	        Date mydate = myFormatter.parse(s2);
	        // 计算两个日期间相差的天数,除以 24*60*60*1000 是转换成天
	        day = (int)((date.getTime()-mydate.getTime())/(24*60*60*1000));
	    } catch(Exception e) {
	        return 0;
	    }
	    return day;
	}
}

运行结果:

-3

实例3

String 类型的日期与 Date 类型日期相互转换

package demo.demo62;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo3 {

	public static void main(String[] args) {
		String s1 = "2021-09-10";
		Date d1 = strToDate(s1);
		System.out.println(d1);
		String s2 = DateToStr(d1);
		System.out.println(s2);
	}
	
	// 将String类型的日期转换为Date类型
	public static Date strToDate(String strDate) {
	    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	    Date date = null;
	    try {
	        date = sdf.parse(strDate);
	    } catch(ParseException e) {
	        e.printStackTrace();
	    }
	    return date;
	}
	// 将Date类型的日期转换为String类型
	public static String DateToStr(Date date) {
	    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	    String strDate = sdf.format(date);
	    return strDate;
	}
}

运行结果:

Fri Sep 10 00:00:00 CST 2021
2021-09-10

实例4

获得一个日期所在周的星期几的日期,如要找出2021年9月15日所在周的星期五是几号。

package demo.demo62;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Demo4 {

	public static void main(String[] args) {
		String s1 = "2021-09-15";
		System.out.println(getWeek(s1,5));
	}
	// 将String类型的日期转换为Date类型
	public static Date strToDate(String strDate) {
	    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	    Date date = null;
	    try {
	        date = sdf.parse(strDate);
	    } catch(ParseException e) {
	        e.printStackTrace();
	    }
	    return date;
	}
	
	public static String getWeek(String sdate, int num) {
	    // 再转换为时间
	    Date dd = strToDate(sdate);
	    Calendar c = Calendar.getInstance();
	    c.setTime(dd);
	    switch (num) {
	        case 1:
	            c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);    //返回星期一所在的日期
	            break;
	        case 2:
	            c.set(Calendar.DAY_OF_WEEK,Calendar.TUESDAY);    //返回星期二所在的日期
	            break;
	        case 3:
	            c.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY);    //返回星期三所在的日期
	            break;
	        case 4:
	            c.set(Calendar.DAY_OF_WEEK,Calendar.THURSDAY);    //返回星期四所在的日期
	            break;
	        case 5:
	            c.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);    //返回星期五所在的日期
	            break;
	        case 6:
	            c.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY);    //返回星期六所在的曰期
	            break;
	        case 7:
	            c.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);    //返回星期曰所在的日期
	            break;
	    }
	    return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
	}

}

运行结果:

2021-09-17

实例5

获取日期前、后多少天的日期(因为是取“前”多少天,所以add的时候要注意用负数)

package demo.demo62;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Demo5 {

	public static void main(String[] args) {
		String s1 = "2021-09-15";
		System.out.println(getDaysAgo(s1,10));
		System.out.println(getDaysAfter(s1,10));
	}
	// 将String类型的日期转换为Date类型
	public static Date strToDate(String strDate) {
	    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	    Date date = null;
	    try {
	        date = sdf.parse(strDate);
	    } catch(ParseException e) {
	        e.printStackTrace();
	    }
	    return date;
	}
	
	public static String getDaysAgo(String sdate, int num) {
	    // 再转换为时间
	    Date dd = strToDate(sdate);
	    Calendar c = Calendar.getInstance();
	    c.setTime(dd);
	    c.add(Calendar.DAY_OF_MONTH, -num);
	    return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
	}
	
	public static String getDaysAfter(String sdate, int num) {
	    // 再转换为时间
	    Date dd = strToDate(sdate);
	    Calendar c = Calendar.getInstance();
	    c.setTime(dd);
	    c.add(Calendar.DAY_OF_MONTH, num);
	    return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
	}

}


运行结果:

2021-09-05
2021-09-25

实例6

获取本月第一天

package demo.demo62;

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Demo6 {

	public static void main(String[] args) {
		System.out.println(getCurrentMonthFirstDay());
	}
	//获取本月第一天
	public static String getCurrentMonthFirstDay(){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	    Calendar cal_1=Calendar.getInstance();//获取当前日期
	    cal_1.add(Calendar.MONTH, 0);
	    cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
	    String firstDay = sdf.format(cal_1.getTime());
	    return firstDay;
	  }

}

运行结果:

2021-09-01

实例7

获取指定日期的月份最后一天

package demo.demo62;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Demo7 {

	public static void main(String[] args) {
		String s1 = "2021-09-15";
		System.out.println(getCurrentMonthLastDay(s1));
	}

	// 获取指定日期的最后一天
	public static String getCurrentMonthLastDay(String time) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date date = null;
		try {
			date = sdf.parse(time);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		// 获取当前月最后一天
		Calendar ca = Calendar.getInstance();
		ca.setTime(date);
		ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); //
		String lastDay = sdf.format(ca.getTime());
		return lastDay;
	}
}

运行结果:

2021-09-30

小结

这节总结了“java中日期查询常用实例”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  61.java中Date日期类型的大小比较
►下一篇待更新     

热门专栏推荐

1.Java小游戏系列(俄罗斯方块、飞机大战、植物大战僵尸等)
2.JavaWeb项目实战(图书管理、在线考试、宿舍管理系统等)
3.JavaScript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
4.Java小白入门200例
5.从零学Java、趣学Java、以王者荣耀角度学Java

以上是关于Java小白入门200例62之java中日期查询常用实例的主要内容,如果未能解决你的问题,请参考以下文章

Java小白入门200例51之根据出生日期计算星座

Java小白入门200例58之日期Calendar类详解

Java小白入门200例57之日期Date类详解

Java小白入门200例98之Java异常

Java小白入门200例95之Java匿名类

Java小白入门200例105之Java ArrayList类