最全Java各种日期格式的获取和设置指定日期(1),阿里高级算法专家公开10份资料

最后

Java架构进阶面试及知识点文档笔记

这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理

image

Java分布式高级面试问题解析文档

其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!

image

互联网Java程序员面试必备问题解析及文档学习笔记

image

Java架构进阶视频解析合集

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

	}

}



/**

 * 得到指定月后(前)的日期 参数传负数即可

 * */

public static String getAfterMonth(int month) {

	Calendar c = Calendar.getInstance();// 获得一个日历的实例

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

	Date date = null;

	try {

		date = sdf.parse("2016-4-04");// 初始日期

	} catch (Exception e) {



	}

	c.setTime(date);// 设置日历时间

	c.add(Calendar.MONTH, month);// 在日历的月份上增加6个月

	String strDate = sdf.format(c.getTime());// 的到你想要得6个月后的日期

	return strDate;



}



/**

 * 得到二个日期间的间隔天数

 */

public static String getTwoDay(String sj1, String sj2) {

	SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");

	long day = 0;

	try {

		java.util.Date date = myFormatter.parse(sj1);

		java.util.Date mydate = myFormatter.parse(sj2);

		day = (mydate.getTime() - date.getTime()) / (24 * 60 * 60 * 1000);

	} catch (Exception e) {

		return "";

	}

	return day + "";

}



/**

 * 根据一个日期,返回是星期几的字符串

 */

public static String getWeek(String sdate) {

	// 再转换为时间

	Date date = TestDate.strToDate(sdate);

	Calendar c = Calendar.getInstance();

	c.setTime(date);

	// int hour=c.get(Calendar.DAY_OF_WEEK);

	// hour 中存的就是星期几了,其范围 1~7

	// 1=星期日 7=星期六,其他类推

	return new SimpleDateFormat("EEEE").format(c.getTime());

}



/**

 * 将短时间格式字符串转换为时间 yyyy-MM-dd

 */

public static Date strToDate(String strDate) {

	SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

	ParsePosition pos = new ParsePosition(0);

	Date strtodate = formatter.parse(strDate, pos);

	return strtodate;

}



/**

 * 两个时间之间的天数

 *

 * @param date1

 * @param date2

 * @return

 */

public static long getDays(String date1, String date2) {

	if (date1 == null || date1.equals(""))

		return 0;

	if (date2 == null || date2.equals(""))

		return 0;

	// 转换为标准时间

	SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");

	java.util.Date date = null;

	java.util.Date mydate = null;

	try {

		date = myFormatter.parse(date1);

		mydate = myFormatter.parse(date2);

	} catch (Exception e) {

	}

	long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);

	return day;

}



// 计算当月最后一天,返回字符串

public String getLastDayOfMonth() {

	String str = "";

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

	Calendar lastDate = Calendar.getInstance();

	lastDate.set(Calendar.DATE, 1);// 设为当前月的1 号

	lastDate.add(Calendar.MONTH, 1);// 加一个月,变为下月的1 号

	lastDate.add(Calendar.DATE, -1);// 减去一天,变为当月最后一天

	str = sdf.format(lastDate.getTime());

	return str;

}



// 上月第一天

public String getPreviousMonthFirst() {

	String str = "";

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

	Calendar lastDate = Calendar.getInstance();

	lastDate.set(Calendar.DATE, 1);// 设为当前月的1 号

	lastDate.add(Calendar.MONTH, -1);// 减一个月,变为下月的1 号

	// lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天

	str = sdf.format(lastDate.getTime());

	return str;

}



// 获取当月第一天

public String getFirstDayOfMonth() {

	String str = "";

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

	Calendar lastDate = Calendar.getInstance();

	lastDate.set(Calendar.DATE, 1);// 设为当前月的1 号

	str = sdf.format(lastDate.getTime());

	return str;

}



// 获得本周星期日的日期

public String getSundayOfWeek() {

	int mondayPlus = getMondayPlus();

	GregorianCalendar currentDate = new GregorianCalendar();

	currentDate.add(GregorianCalendar.DATE, mondayPlus + 6);

	Date date = currentDate.getTime();

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

    String sunday=sdf.format(date);

	return sunday;

}



// 获取当天时间

public String getNowTime(String dateformat) {

	Date now = new Date();

	SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 可以方便地修改日期格式

	String hehe = dateFormat.format(now);

	return hehe;

}



// 获得当前日期与本周日相差的天数

private int getMondayPlus() {

	Calendar cd = Calendar.getInstance();

	// 获得今天是一周的第几天,星期日是第一天,星期二是第二天......

	int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; // 因为按中国礼拜一作为第一天所以这里减1

	if (dayOfWeek == 1) {

		return 0;

	} else {

		return 1 - dayOfWeek;

	}

}



// 获得本周一的日期

public String getMondayOFWeek() {

	weeks = 0;

	int mondayPlus = this.getMondayPlus();

	GregorianCalendar currentDate = new GregorianCalendar();

	currentDate.add(GregorianCalendar.DATE, mondayPlus);

	Date monday = currentDate.getTime();

	DateFormat df = DateFormat.getDateInstance();

	String preMonday = df.format(monday);

	return preMonday;

}



// 获得相应周的周六的日期

public String getSaturday() {

	int mondayPlus = this.getMondayPlus();

	GregorianCalendar currentDate = new GregorianCalendar();

	currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6);

	Date monday = currentDate.getTime();

	DateFormat df = DateFormat.getDateInstance();

	String preMonday = df.format(monday);

	return preMonday;

}



// 获得上周星期日的日期

public String getPreviousWeekSunday() {

	weeks = 0;

	weeks--;

	int mondayPlus = this.getMondayPlus();

	GregorianCalendar currentDate = new GregorianCalendar();

	currentDate.add(GregorianCalendar.DATE, mondayPlus + weeks);

	Date monday = currentDate.getTime();

	DateFormat df = DateFormat.getDateInstance();

	String preMonday = df.format(monday);

	return preMonday;

}



// 获得上周星期一的日期

public String getPreviousWeekday() {

	weeks--;

	int mondayPlus = this.getMondayPlus();

	GregorianCalendar currentDate = new GregorianCalendar();

	currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);

	Date monday = currentDate.getTime();

	DateFormat df = DateFormat.getDateInstance();

	String preMonday = df.format(monday);

	return preMonday;

}



// 获得下周星期一的日期

public String getNextMonday() {

	weeks++;

	int mondayPlus = this.getMondayPlus();

	GregorianCalendar currentDate = new GregorianCalendar();

	currentDate.add(GregorianCalendar.DATE, mondayPlus + 7);

	Date monday = currentDate.getTime();

	DateFormat df = DateFormat.getDateInstance();

	String preMonday = df.format(monday);

	return preMonday;

}



// 获得下周星期日的日期

public String getNextSunday() {

	int mondayPlus = this.getMondayPlus();

	GregorianCalendar currentDate = new GregorianCalendar();

	currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 + 6);

	Date monday = currentDate.getTime();

	DateFormat df = DateFormat.getDateInstance();

	String preMonday = df.format(monday);

	return preMonday;

}



private int getMonthPlus() {

	Calendar cd = Calendar.getInstance();

	int monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);

	cd.set(Calendar.DATE, 1);// 把日期设置为当月第一天

	cd.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天

	MaxDate = cd.get(Calendar.DATE);

	if (monthOfNumber == 1) {

		return -MaxDate;

	} else {

		return 1 - monthOfNumber;

	}

}



// 获得上月最后一天的日期

public String getPreviousMonthEnd() {

	String str = "";

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

	Calendar lastDate = Calendar.getInstance();

	lastDate.add(Calendar.MONTH, -1);// 减一个月

	lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天

	lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天

	str = sdf.format(lastDate.getTime());

	return str;

}



// 获得下个月第一天的日期

public String getNextMonthFirst() {

	String str = "";

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

	Calendar lastDate = Calendar.getInstance();

	lastDate.add(Calendar.MONTH, 1);// 减一个月

	lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天

	str = sdf.format(lastDate.getTime());

	return str;

}



// 获得下个月最后一天的日期

public String getNextMonthEnd() {

	String str = "";

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

	Calendar lastDate = Calendar.getInstance();

	lastDate.add(Calendar.MONTH, 1);// 加一个月

	lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天

	lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天

	str = sdf.format(lastDate.getTime());

	return str;

}



// 获得明年最后一天的日期

public String getNextYearEnd() {

	String str = "";

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

	Calendar lastDate = Calendar.getInstance();

	lastDate.add(Calendar.YEAR, 1);// 加一个年

	lastDate.set(Calendar.DAY_OF_YEAR, 1);

	lastDate.roll(Calendar.DAY_OF_YEAR, -1);

	str = sdf.format(lastDate.getTime());

	return str;

}



// 获得明年第一天的日期

public String getNextYearFirst() {

	String str = "";

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

	Calendar lastDate = Calendar.getInstance();

	lastDate.add(Calendar.YEAR, 1);// 加一个年

	lastDate.set(Calendar.DAY_OF_YEAR, 1);

	str = sdf.format(lastDate.getTime());

	return str;

}



// 获得本年有多少天

private int getMaxYear() {

	Calendar cd = Calendar.getInstance();

	cd.set(Calendar.DAY_OF_YEAR, 1);// 把日期设为当年第一天

	cd.roll(Calendar.DAY_OF_YEAR, -1);// 把日期回滚一天。

	int MaxYear = cd.get(Calendar.DAY_OF_YEAR);

	return MaxYear;

}



private int getYearPlus() {

	Calendar cd = Calendar.getInstance();

	int yearOfNumber = cd.get(Calendar.DAY_OF_YEAR);// 获得当天是一年中的第几天

	cd.set(Calendar.DAY_OF_YEAR, 1);// 把日期设为当年第一天

	cd.roll(Calendar.DAY_OF_YEAR, -1);// 把日期回滚一天。

	int MaxYear = cd.get(Calendar.DAY_OF_YEAR);

	if (yearOfNumber == 1) {

		return -MaxYear;

	} else {

		return 1 - yearOfNumber;

	}

}



// 获得本年第一天的日期

public String getCurrentYearFirst() {

	int yearPlus = this.getYearPlus();

	GregorianCalendar currentDate = new GregorianCalendar();

	currentDate.add(GregorianCalendar.DATE, yearPlus);

	Date yearDay = currentDate.getTime();

	DateFormat df = DateFormat.getDateInstance();

	String preYearDay = df.format(yearDay);

	return preYearDay;

}



// 获得本年最后一天的日期 *

public String getCurrentYearEnd() {

	Date date = new Date();

	SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式

	String years = dateFormat.format(date);

	return years + "-12-31";

}



// 获得上年第一天的日期 *

public String getPreviousYearFirst() {

	Date date = new Date();

	SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式

	String years = dateFormat.format(date);

	int years_value = Integer.parseInt(years);

	years_value--;

	return years_value + "-1-1";

}



// 获得上年最后一天的日期

public String getPreviousYearEnd() {

	weeks--;

	int yearPlus = this.getYearPlus();

	GregorianCalendar currentDate = new GregorianCalendar();

	currentDate.add(GregorianCalendar.DATE, yearPlus + MaxYear * weeks

			+ (MaxYear - 1));

	Date yearDay = currentDate.getTime();

	DateFormat df = DateFormat.getDateInstance();

	String preYearDay = df.format(yearDay);

	getThisSeasonTime(11);

	return preYearDay;

}



// 获得本季度

public String getThisSeasonTime(int month) {

	int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };

	int season = 1;

	if (month >= 1 && month <= 3) {

		season = 1;

	}

	if (month >= 4 && month <= 6) {

		season = 2;

	}

	if (month >= 7 && month <= 9) {

		season = 3;

	}

	if (month >= 10 && month <= 12) {

		season = 4;

	}

	int start_month = array[season - 1][0];

	int end_month = array[season - 1][2];

	Date date = new Date();

	SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式

	String years = dateFormat.format(date);

	int years_value = Integer.parseInt(years);

	int start_days = 1;// years+"-"+String.valueOf(start_month)+"-";//getLastDayOfMonth(years_value,start_month);

	int end_days = getLastDayOfMonth(years_value, end_month);

	String seasonDate = years_value + "-" + start_month + "-" + start_days

			+ ";" + years_value + "-" + end_month + "-" + end_days;

	return seasonDate;

}



/**

 * 获取某年某月的最后一天

 * 

 * @param year

 *            年

 * @param month

 *            月

 * @return 最后一天

 */

private int getLastDayOfMonth(int year, int month) {

	if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8

			|| month == 10 || month == 12) {

		return 31;

	}

	if (month == 4 || month == 6 || month == 9 || month == 11) {

		return 30;

	}

	if (month == 2) {

		if (isLeapYear(year)) {

			return 29;

		} else {

			return 28;

最后总结

ActiveMQ+Kafka+RabbitMQ学习笔记PDF

image.png

  • RabbitMQ实战指南

image.png

  • 手写RocketMQ笔记

image.png

  • 手写“Kafka笔记”

image

关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

== 4 || month == 6 || month == 9 || month == 11) {

		return 30;

	}

	if (month == 2) {

		if (isLeapYear(year)) {

			return 29;

		} else {

			return 28;

最后总结

ActiveMQ+Kafka+RabbitMQ学习笔记PDF

[外链图片转存中…(img-cKSn5f1x-1715566864115)]

  • RabbitMQ实战指南

[外链图片转存中…(img-h2TgQGff-1715566864116)]

  • 手写RocketMQ笔记

[外链图片转存中…(img-FVylYnLk-1715566864116)]

  • 手写“Kafka笔记”

[外链图片转存中…(img-Y67YG1UV-1715566864116)]

关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值