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中日期查询常用实例的主要内容,如果未能解决你的问题,请参考以下文章