`
qinglintan
  • 浏览: 38984 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论

Calendar常用方法封装

阅读更多

这些天,在忙于“采购提醒”,它是一个循环式的工作机制,周期有四类,周,月,季,半年。平时对Calendar关注相对少些,所以做起来到处找资料,现在对Calendar封装一下,方便大家更快,更好的进入正题,不用再关注一些费力不讨好的事了,声明先,里面的一些方法是直接借鉴其他同人,只希望大家少走弯路,少留点汗!大家也可以勇跃将自己认为比较好的操作日期方法贴在上面哦

package com.iwode.common;

import java.text.DateFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 * 常用日历操作辅助类
 * 
 * @author steven 2010-08-10
 * @email:qing.tan@iwode.com
 */
public class CalendarUtil {

	private int weeks = 0;// 用来全局控制 上一周,本周,下一周的周数变化
	private int MaxDate; // 一月最大天数
	private int MaxYear; // 一年最大天数

	/**
	 * 测试
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		CalendarUtil tt = new CalendarUtil();
		System.out.println("获取当天日期:" + tt.getNowTime("yyyy-MM-dd"));
		System.out.println("获取本周一日期:" + tt.getMondayOFWeek());
		System.out.println("获取本周日的日期~:" + tt.getCurrentWeekday());
		System.out.println("获取上周一日期:" + tt.getPreviousWeekday());
		System.out.println("获取上周日日期:" + tt.getPreviousWeekSunday());
		System.out.println("获取下周一日期:" + tt.getNextMonday());
		System.out.println("获取下周日日期:" + tt.getNextSunday());
		System.out.println("获得相应周的周六的日期:" + tt.getNowTime("yyyy-MM-dd"));
		System.out.println("获取本月第一天日期:" + tt.getFirstDayOfMonth());
		System.out.println("获取本月最后一天日期:" + tt.getDefaultDay());
		System.out.println("获取上月第一天日期:" + tt.getPreviousMonthFirst());
		System.out.println("获取上月最后一天的日期:" + tt.getPreviousMonthEnd());
		System.out.println("获取下月第一天日期:" + tt.getNextMonthFirst());
		System.out.println("获取下月最后一天日期:" + tt.getNextMonthEnd());
		System.out.println("获取本年的第一天日期:" + tt.getCurrentYearFirst());
		System.out.println("获取本年最后一天日期:" + tt.getCurrentYearEnd());
		System.out.println("获取去年的第一天日期:" + tt.getPreviousYearFirst());
		System.out.println("获取去年的最后一天日期:" + tt.getPreviousYearEnd());
		System.out.println("获取明年第一天日期:" + tt.getNextYearFirst());
		System.out.println("获取明年最后一天日期:" + tt.getNextYearEnd());
		System.out.println("获取本季度第一天:" + tt.getThisSeasonFirstTime(11));
		System.out.println("获取本季度最后一天:" + tt.getThisSeasonFinallyTime(11));
		System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:"
				+ CalendarUtil.getTwoDay("2008-12-1", "2008-9-29"));
		System.out.println("获取当前月的第几周:" + tt.getWeekOfMonth());
		System.out.println("获取当前年份:" + tt.getYear());
		System.out.println("获取当前月份:" + tt.getMonth());
		System.out.println("获取今天在本年的第几天:" + tt.getDayOfYear());
		System.out.println("获得今天在本月的第几天(获得当前日):" + tt.getDayOfMonth());
		System.out.println("获得今天在本周的第几天:" + tt.getDayOfWeek());
		System.out.println("获得半年后的日期:"
				+ tt.convertDateToString(tt.getTimeYearNext()));
	}

	/**
	 * 获得当前年份
	 * 
	 * @return
	 */
	public static int getYear() {
		return Calendar.getInstance().get(Calendar.YEAR);
	}

	/**
	 * 获得当前月份
	 * 
	 * @return
	 */
	public static int getMonth() {
		return Calendar.getInstance().get(Calendar.MONTH) + 1;
	}

	/**
	 * 获得今天在本年的第几天
	 * 
	 * @return
	 */
	public static int getDayOfYear() {
		return Calendar.getInstance().get(Calendar.DAY_OF_YEAR);
	}

	/**
	 * 获得今天在本月的第几天(获得当前日)
	 * 
	 * @return
	 */
	public static int getDayOfMonth() {
		return Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
	}

	/**
	 * 获得今天在本周的第几天
	 * 
	 * @return
	 */
	public static int getDayOfWeek() {
		return Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
	}

	/**
	 * 获得今天是这个月的第几周
	 * 
	 * @return
	 */
	public static int getWeekOfMonth() {
		return Calendar.getInstance().get(Calendar.DAY_OF_WEEK_IN_MONTH);
	}

	/**
	 * 获得半年后的日期
	 * 
	 * @return
	 */
	public static Date getTimeYearNext() {
		Calendar.getInstance().add(Calendar.DAY_OF_YEAR, 183);
		return Calendar.getInstance().getTime();
	}

	/**
	 * 将日期转换成字符串
	 * 
	 * @param dateTime
	 * @return
	 */
	public static String convertDateToString(Date dateTime) {
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		return df.format(dateTime);
	}

	/**
	 * 得到二个日期间的间隔天数
	 * 
	 * @param sj1
	 * @param sj2
	 * @return
	 */
	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 = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
		} catch (Exception e) {
			return "";
		}
		return day + "";
	}

	/**
	 * 根据一个日期,返回是星期几的字符串
	 * 
	 * @param sdate
	 * @return
	 */
	public static String getWeek(String sdate) {
		// 再转换为时间
		Date date = CalendarUtil.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
	 * 
	 * @param strDate
	 * @return
	 */
	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;
	}

	/**
	 * 计算当月最后一天,返回字符串
	 * 
	 * @return
	 */
	public String getDefaultDay() {
		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;
	}

	/**
	 * 上月第一天
	 * 
	 * @return
	 */
	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;
	}

	/**
	 * 获取当月第一天
	 * 
	 * @return
	 */
	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;
	}

	/**
	 * 获得本周星期日的日期
	 * 
	 * @return
	 */
	public String getCurrentWeekday() {
		weeks = 0;
		int mondayPlus = this.getMondayPlus();
		GregorianCalendar currentDate = new GregorianCalendar();
		currentDate.add(GregorianCalendar.DATE, mondayPlus + 6);
		Date monday = currentDate.getTime();

		DateFormat df = DateFormat.getDateInstance();
		String preMonday = df.format(monday);
		return preMonday;
	}

	/**
	 * 获取当天时间
	 * 
	 * @param dateformat
	 * @return
	 */
	public String getNowTime(String dateformat) {
		Date now = new Date();
		SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 可以方便地修改日期格式
		String hehe = dateFormat.format(now);
		return hehe;
	}

	/**
	 * 获得当前日期与本周日相差的天数
	 * 
	 * @return
	 */
	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;
		}
	}

	/**
	 * 获得本周一的日期
	 * 
	 * @return
	 */
	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;
	}

	/**
	 * 获得相应周的周六的日期
	 * 
	 * @return
	 */
	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;
	}

	/**
	 * 获得上周星期日的日期
	 * 
	 * @return
	 */
	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;
	}

	/**
	 * 获得上周星期一的日期
	 * 
	 * @return
	 */
	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;
		}
	}

	/**
	 * 获得上月最后一天的日期
	 * 
	 * @return
	 */
	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;
	}

	/**
	 * 获得下个月第一天的日期
	 * 
	 * @return
	 */
	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;
	}

	/**
	 * 获得下个月最后一天的日期
	 * 
	 * @return
	 */
	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;
	}

	/**
	 * 获得明年最后一天的日期
	 * 
	 * @return
	 */
	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;
	}

	/**
	 * 获得明年第一天的日期
	 * 
	 * @return
	 */
	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;

	}

	/**
	 * 获得本年有多少天
	 * 
	 * @return
	 */
	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;
		}
	}

	/**
	 * 获得本年第一天的日期
	 * 
	 * @return
	 */
	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);
		return preYearDay;
	}

	/**
	 * 获得本季度第一天
	 * 
	 * @param month
	 * @return
	 */
	public String getThisSeasonFirstTime(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)+"-1";//getLastDayOfMonth(years_value,start_month);
		int end_days = getLastDayOfMonth(years_value, end_month);
		String seasonDate = years_value + "-" + start_month + "-" + start_days;
		return seasonDate;

	}

	/**
	 * 获得本季度最后一天
	 * 
	 * @param month
	 * @return
	 */
	public String getThisSeasonFinallyTime(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)+"-1";//getLastDayOfMonth(years_value,start_month);
		int end_days = getLastDayOfMonth(years_value, end_month);
		String seasonDate = 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;
			}
		}
		return 0;
	}

	/**
	 * 是否闰年
	 * 
	 * @param year
	 *            年
	 * @return
	 */
	public boolean isLeapYear(int year) {
		return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
	}

	/**
	 * 是否闰年
	 * 
	 * @param year
	 * @return
	 */
	public boolean isLeapYear2(int year) {
		return new GregorianCalendar().isLeapYear(year);
	}
}
  

 tanlinqing

分享到:
评论
19 楼 xingyq521 2011-04-18  
<div class="quote_title">qinglintan 写道</div>
<div class="quote_div">
<p>这些天,在忙于“采购提醒”,它是一个循环式的工作机制,周期有四类,周,月,季,半年。平时对Calendar关注相对少些,所以做起来到处找资料,现在对Calendar封装一下,方便大家更快,更好的进入正题,不用再关注一些费力不讨好的事了,声明先,里面的一些方法是直接借鉴其他同人,只希望大家少走弯路,少留点汗!大家也可以勇跃将自己认为比较好的操作日期方法贴在上面哦</p>
<pre name="code" class="java"><pre name="code" class="java">package com.iwode.common;

import java.text.DateFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
* 常用日历操作辅助类
*
* @author steven 2010-08-10
* @email:qing.tan@iwode.com
*/
public class CalendarUtil {

private int weeks = 0;// 用来全局控制 上一周,本周,下一周的周数变化
private int MaxDate; // 一月最大天数
private int MaxYear; // 一年最大天数

/**
* 测试
*
* @param args
*/
public static void main(String[] args) {
CalendarUtil tt = new CalendarUtil();
System.out.println("获取当天日期:" + tt.getNowTime("yyyy-MM-dd"));
System.out.println("获取本周一日期:" + tt.getMondayOFWeek());
System.out.println("获取本周日的日期~:" + tt.getCurrentWeekday());
System.out.println("获取上周一日期:" + tt.getPreviousWeekday());
System.out.println("获取上周日日期:" + tt.getPreviousWeekSunday());
System.out.println("获取下周一日期:" + tt.getNextMonday());
System.out.println("获取下周日日期:" + tt.getNextSunday());
System.out.println("获得相应周的周六的日期:" + tt.getNowTime("yyyy-MM-dd"));
System.out.println("获取本月第一天日期:" + tt.getFirstDayOfMonth());
System.out.println("获取本月最后一天日期:" + tt.getDefaultDay());
System.out.println("获取上月第一天日期:" + tt.getPreviousMonthFirst());
System.out.println("获取上月最后一天的日期:" + tt.getPreviousMonthEnd());
System.out.println("获取下月第一天日期:" + tt.getNextMonthFirst());
System.out.println("获取下月最后一天日期:" + tt.getNextMonthEnd());
System.out.println("获取本年的第一天日期:" + tt.getCurrentYearFirst());
System.out.println("获取本年最后一天日期:" + tt.getCurrentYearEnd());
System.out.println("获取去年的第一天日期:" + tt.getPreviousYearFirst());
System.out.println("获取去年的最后一天日期:" + tt.getPreviousYearEnd());
System.out.println("获取明年第一天日期:" + tt.getNextYearFirst());
System.out.println("获取明年最后一天日期:" + tt.getNextYearEnd());
System.out.println("获取本季度第一天:" + tt.getThisSeasonFirstTime(11));
System.out.println("获取本季度最后一天:" + tt.getThisSeasonFinallyTime(11));
System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:"
+ CalendarUtil.getTwoDay("2008-12-1", "2008-9-29"));
System.out.println("获取当前月的第几周:" + tt.getWeekOfMonth());
System.out.println("获取当前年份:" + tt.getYear());
System.out.println("获取当前月份:" + tt.getMonth());
System.out.println("获取今天在本年的第几天:" + tt.getDayOfYear());
System.out.println("获得今天在本月的第几天(获得当前日):" + tt.getDayOfMonth());
System.out.println("获得今天在本周的第几天:" + tt.getDayOfWeek());
System.out.println("获得半年后的日期:"
+ tt.convertDateToString(tt.getTimeYearNext()));
}

/**
* 获得当前年份
*
* @return
*/
public static int getYear() {
return Calendar.getInstance().get(Calendar.YEAR);
}

/**
* 获得当前月份
*
* @return
*/
public static int getMonth() {
return Calendar.getInstance().get(Calendar.MONTH) + 1;
}

/**
* 获得今天在本年的第几天
*
* @return
*/
public static int getDayOfYear() {
return Calendar.getInstance().get(Calendar.DAY_OF_YEAR);
}

/**
* 获得今天在本月的第几天(获得当前日)
*
* @return
*/
public static int getDayOfMonth() {
return Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
}

/**
* 获得今天在本周的第几天
*
* @return
*/
public static int getDayOfWeek() {
return Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
}

/**
* 获得今天是这个月的第几周
*
* @return
*/
public static int getWeekOfMonth() {
return Calendar.getInstance().get(Calendar.DAY_OF_WEEK_IN_MONTH);
}

/**
* 获得半年后的日期
*
* @return
*/
public static Date getTimeYearNext() {
Calendar.getInstance().add(Calendar.DAY_OF_YEAR, 183);
return Calendar.getInstance().getTime();
}

/**
* 将日期转换成字符串
*
* @param dateTime
* @return
*/
public static String convertDateToString(Date dateTime) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
return df.format(dateTime);
}

/**
* 得到二个日期间的间隔天数
*
* @param sj1
* @param sj2
* @return
*/
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 = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
} catch (Exception e) {
return "";
}
return day + "";
}

/**
* 根据一个日期,返回是星期几的字符串
*
* @param sdate
* @return
*/
public static String getWeek(String sdate) {
// 再转换为时间
Date date = CalendarUtil.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
*
* @param strDate
* @return
*/
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;
}

/**
* 计算当月最后一天,返回字符串
*
* @return
*/
public String getDefaultDay() {
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;
}

/**
* 上月第一天
*
* @return
*/
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;
}

/**
* 获取当月第一天
*
* @return
*/
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;
}

/**
* 获得本周星期日的日期
*
* @return
*/
public String getCurrentWeekday() {
weeks = 0;
int mondayPlus = this.getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus + 6);
Date monday = currentDate.getTime();

DateFormat df = DateFormat.getDateInstance();
String preMonday = df.format(monday);
return preMonday;
}

/**
* 获取当天时间
*
* @param dateformat
* @return
*/
public String getNowTime(String dateformat) {
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 可以方便地修改日期格式
String hehe = dateFormat.format(now);
return hehe;
}

/**
* 获得当前日期与本周日相差的天数
*
* @return
*/
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;
}
}

/**
* 获得本周一的日期
*
* @return
*/
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;
}

/**
* 获得相应周的周六的日期
*
* @return
*/
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;
}

/**
* 获得上周星期日的日期
*
* @return
*/
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;
}

/**
* 获得上周星期一的日期
*
* @return
*/
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;
}
}

/**
* 获得上月最后一天的日期
*
* @return
*/
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;
}

/**
* 获得下个月第一天的日期
*
* @return
*/
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;
}

/**
* 获得下个月最后一天的日期
*
* @return
*/
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;
}

/**
* 获得明年最后一天的日期
*
* @return
*/
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;
}

/**
* 获得明年第一天的日期
*
* @return
*/
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;

}

/**
* 获得本年有多少天
*
* @return
*/
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;
}
}

/**
* 获得本年第一天的日期
*
* @return
*/
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);
return preYearDay;
}

/**
* 获得本季度第一天
*
* @param month
* @return
*/
public String getThisSeasonFirstTime(int month) {
int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
int season = 1;
if (month &gt;= 1 &amp;&amp; month &lt;= 3) {
season = 1;
}
if (month &gt;= 4 &amp;&amp; month &lt;= 6) {
season = 2;
}
if (month &gt;= 7 &amp;&amp; month &lt;= 9) {
season = 3;
}
if (month &gt;= 10 &amp;&amp; month &lt;= 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)+"-1";//getLastDayOfMonth(years_value,start_month);
int end_days = getLastDayOfMonth(years_value, end_month);
String seasonDate = years_value + "-" + start_month + "-" + start_days;
return seasonDate;

}

/**
* 获得本季度最后一天
*
* @param month
* @return
*/
public String getThisSeasonFinallyTime(int month) {
int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
int season = 1;
if (month &gt;= 1 &amp;&amp; month &lt;= 3) {
season = 1;
}
if (month &gt;= 4 &amp;&amp; month &lt;= 6) {
season = 2;
}
if (month &gt;= 7 &amp;&amp; month &lt;= 9) {
season = 3;
}
if (month &gt;= 10 &amp;&amp; month &lt;= 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)+"-1";//getLastDayOfMonth(years_value,start_month);
int end_days = getLastDayOfMonth(years_value, end_month);
String seasonDate = 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;
}
}
return 0;
}

/**
* 是否闰年
*
* @param year
*            年
* @return
*/
public boolean isLeapYear(int year) {
return (year % 4 == 0 &amp;&amp; year % 100 != 0) || (year % 400 == 0);
}

/**
* 是否闰年
*
* @param year
* @return
*/
public boolean isLeapYear2(int year) {
return new GregorianCalendar().isLeapYear(year);
}
}
</pre>
  </pre>
<p> tanlinqing<img src="/images/smiles/icon_arrow.gif" alt=""></p>
</div>
<p> </p>
18 楼 nplw668 2010-08-13  
推荐joda-time
17 楼 qinglintan 2010-08-12  
有些时候感觉自己想得到一个XX日期,总是要想一下,到底要用哪个类,要怎么更简便得到它,这些方法应该有些可以不用去想了,直接可以借签一下
16 楼 qinglintan 2010-08-12  
多谢指教.
15 楼 awfe 2010-08-12  
有点造轮子的味道。

像取最后一天、第一天这类有专门的方法。比如本月最后一天的日期可以直接用Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH)

再比如是否闰年用java.util.GregorianCalendar的boolean isLeapYear(int year) 不是很直接吗
14 楼 husai 2010-08-12  
piao_bo_yi 写道
lixjluck 写道
这个有问题的用法吧
public static int getYear() { 

你的系统一年不重启,那不是返回的是错误的年份。


不会吧,还有这种问题??

肯定有啊,还有Calendar 也是静态变量,时间就是系统启动时的时间,如果系统不重启,这个时间就一定了,不会变了。
13 楼 piao_bo_yi 2010-08-12  
lixjluck 写道
这个有问题的用法吧
public static int getYear() { 

你的系统一年不重启,那不是返回的是错误的年份。


不会吧,还有这种问题??
12 楼 笑我痴狂 2010-08-12  
有一些小问题   还是写的满齐全的   不过早有着方面的工具了
11 楼 chan.d 2010-08-12  
楼主,且听我一言,

在 Utils 里面定义一个 private static 的对象, 这就已经是问题了。

这里还定义的是 private static Calendar calendar = Calendar.getInstance();

那么,你这个类拿到航空系统用用,估计要出人命。

需要严谨一些,虽然提炼的方法是不错的,确实可能用到,但从类的书写方面还需要下番功夫理解。

祝进步。
10 楼 mercyblitz 2010-08-12  
sdh5724 写道
1. 从功能角度来说, 做的很不错。 很有些为业务开发节省时间的味道
2. 从设计角度来说, 错误的太多了。函数封装过于细节, 函数功能过于单一。还有一些BUG, 楼上的也指出了。 NTP同步导致你无法获取正确的时间。 有几个方法的处理方式值得商榷, 同时没有考虑国际化的问题。 时钟基准获得混乱。


建议你对Calendar对象继承封装更好一些。


你说的没有错,如果全面考虑的话,需要考虑Locale和TimeZone的问题。如果楼主的使用区域限制得比较死的话,Locale和TimeZone问题不大。
9 楼 sdh5724 2010-08-12  
1. 从功能角度来说, 做的很不错。 很有些为业务开发节省时间的味道
2. 从设计角度来说, 错误的太多了。函数封装过于细节, 函数功能过于单一。还有一些BUG, 楼上的也指出了。 NTP同步导致你无法获取正确的时间。 有几个方法的处理方式值得商榷, 同时没有考虑国际化的问题。 时钟基准获得混乱。


建议你对Calendar对象继承封装更好一些。
8 楼 fansofjava 2010-08-11  
apache commons 与joda
7 楼 mercyblitz 2010-08-11  
qinglintan 写道
跟系统是没有关系的,这只是看你自己的需要,来调用哪个方法,在这里只是让操作一些常用的日期值变得更简单,而不用自己去拼接。跟系统业务是没有关系的



关键是一个错误的!
6 楼 mercyblitz 2010-08-11  
lixjluck 写道
这个有问题的用法吧
public static int getYear() { 

你的系统一年不重启,那不是返回的是错误的年份。


确实Calendar不提供实时计算,楼主需要调用Calendar#setTimeInMillis(long),传入System#currentTimeMillis();并且需要合理的同步。
5 楼 qinglintan 2010-08-11  
如果觉得有更好的方法,为何不贴上来,共大家一起学习呢
4 楼 qinglintan 2010-08-11  
跟系统是没有关系的,这只是看你自己的需要,来调用哪个方法,在这里只是让操作一些常用的日期值变得更简单,而不用自己去拼接。跟系统业务是没有关系的
3 楼 fansofjava 2010-08-11  
虽然精神值得学习,但这种东西早有组件可用了,至少有两个日期处理做得不错的组件。
2 楼 lixjluck 2010-08-11  
这个有问题的用法吧
public static int getYear() { 

你的系统一年不重启,那不是返回的是错误的年份。
1 楼 string2020 2010-08-11  
封装的很好嘛,学习了。。

相关推荐

    Android 常用封装库

    7. **字符串常用方法**:Android中,`String`类提供了很多实用的方法,如`substring()`、`trim()`、`indexOf()`等,用于字符串的处理。此外,`TextUtils`类提供了更多的字符串操作,如空判断、格式化等。 8. **系统...

    JAVA中常用类的常用方法.pdf

    JAVA中常用类的常用方法主要涵盖了java语言中基础类库的关键类以及它们提供的主要方法。以下是针对文档内容的详细解释: 1. java.lang.Object类 Object类是Java中所有类的超类,它提供了多种方法,这些方法在Java中...

    Java -核心类库 Object类常方法 Math类常用方法 System类常用方法 基本类型包装类常用方法等

    Java为每种基本数据类型都提供了对应的包装类,这些包装类不仅封装了基本类型的值,还提供了许多有用的静态方法。 1. **valueOf() 方法**:将字符串转换为相应类型的对象。 2. **parseInt() 方法**:将字符串转换为...

    java各种常用的工具类封装 源码

    以下将详细讲解标题和描述中提到的几个关键工具类及其封装方法: 1. **DateUtil**: Java中的日期时间处理在早期版本中较为复杂,`DateUtil` 类通常是为了封装`java.util.Date`、`Calendar` 和 `java.time` 包中的类...

    封装java常用工具的类

    在Java编程语言中,封装是一种核心的面向对象编程原则,它允许我们将数据和操作这些数据的方法捆绑在一起,以提供更好的代码组织和安全性。标题提到的"封装java常用工具的类"是一个很好的实践,将常见的功能模块化,...

    iOS工具类封装

    总的来说,"iOS工具类封装"中的`Helper`类集成了日常开发中常用的一些功能,提高了代码的可读性和效率。它简化了字符串尺寸计算、日期获取和数据验证的过程,为iOS开发者提供了便利。这样的工具类在大型项目中尤其有...

    基于Android系统Api封装常用工具类.zip

    本压缩包"基于Android系统Api封装常用工具类.zip"中包含的AJT-code很可能是作者为了方便Android应用开发而编写的自定义工具类集合。 首先,我们要理解Android系统的API是什么。Android API是Google为开发者提供的...

    java常用系统类库实验

    实验旨在加深学生对Java预定义类的理解,掌握常用类的运用技巧,以及熟练方法覆盖(重写)的实践。实验分为三个部分,分别围绕Math类、基本类型的包装类、日期类(Date和Calendar)、以及动态数组Vector类展开。 ##...

    Java常用的基础类

    包装类是 Java 语言中最基本的类之一,它将基本数据类型封装为对象。每个基本数据类型都有对应的包装类,例如 Boolean 对应 boolean、Byte 对应 byte、Short 对应 short、Integer 对应 int、Long 对应 long、...

    Java8应用封装,手写ORM,LOG,framework

    在这个“Java8应用封装,手写ORM,LOG,framework”的项目中,开发者显然专注于利用Java8的新特性来构建自己的轻量级框架,包括对象关系映射(ORM)、日志系统(LOG)以及一些通用的工具类和自动化配置。 1. **Java...

    day01【Object类、常用API】-笔记.md

    这些包装类不仅提供了基本类型的值封装,还提供了一些有用的静态方法,如`parseInt(String s)`用于将字符串转换为整数。 综上所述,理解`Object`类的核心方法(如`toString`和`equals`)及其重写方式对于提高代码...

    java常用工具类整理

    1. **java.util.*** 包:这是Java最基础的工具类包,包含了集合框架(如ArrayList、LinkedList、HashMap等)、日期时间处理(Date、Calendar、SimpleDateFormat)、泛型、迭代器、枚举等重要工具类。例如,`...

    思科路由器常用配置命令大全

    思科路由器常用配置命令大全 ...Encapsulation PPP命令把PPP设置为由串口或ISDN接口使用的封装方法。Encapsulation sap命令规定在网络段上使用的以太网802.2格式Cisco的密码是sap。 二十三、End命令 End命令退出。

    Java常用类.pdf

    总的来说,这些Java常用类为开发者提供了丰富的工具,涵盖了对象基础、字符串处理、线程控制、数据封装和日期时间操作等多个方面,是Java编程不可或缺的部分。理解和熟练使用这些类,能够大大提高开发效率和代码质量...

    基础(二)

    常用方法1.1.2.字符串比较1.1.3. StringBuffer与 StringBuilder1.1.4. String、StringBuffer、StringBuilder的区别1.1.5.封装类比较1.2. Math类1.3. Arrays 类1.4. System 类1.5. Object 类1.6. Date 类1.6.1.日期...

    28个java常用的工具类源码.zip

    工具类可能包含对旧版`java.util.Date`和`java.util.Calendar`的封装,或者使用新API的实用方法。 3. **字符串操作**:字符串在编程中非常常见,工具类可能会提供一些便捷的字符串格式化、拼接、查找、替换、分割等...

    Java程序设计教学大纲.docx

    * 在NetBeans开发环境中阅读并分析程序,完成验证性实验,理解异常处理的方法,掌握String类的常用方法,掌握Date类以及Calendar类的常用方法,掌握BigInteger类的常用方法 * 依据题目要求设计程序,练习基本的算法...

    Java常用的API笔记,pdf格式

    基本类型是Java语言的基本数据类型,例如int、float、double等,而包装类则是对基本类型的封装,例如Integer、Float、Double等。包装类提供了许多有用的方法,可以对基本类型进行操作。 3. Runtime类 Runtime类是...

Global site tag (gtag.js) - Google Analytics