日期多功能类

package org.eredlab.g4.ccl.util;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;

/**
 * @Description {日期多功能类}
 * @author LIUBO
 * @since 2011-8-3
 */
public class DateUtils {

	public static String getCurrentDate() {
		Timestamp ts = new Timestamp(System.currentTimeMillis());
		return new SimpleDateFormat("yyyyMMdd").format(ts);
	}

	public static String getCurrentTime() {
		Timestamp ts = new Timestamp(System.currentTimeMillis());
		String currentTime = new SimpleDateFormat("HHmmss").format(ts);
		return currentTime;
	}

	public static String getCurrentDate2() {
		Timestamp ts = new Timestamp(System.currentTimeMillis());
		return new SimpleDateFormat("yyyyMMdd").format(ts);
	}

	public static String getCurrentTime2() {
		Timestamp ts = new Timestamp(System.currentTimeMillis());
		String currentTime = new SimpleDateFormat("HH:mm:ss").format(ts);
		return currentTime;
	}

	public static long getCurrentTimeLong() {
		return Long.parseLong(getCurrentTime());
	}

	public static String getNextDate() {
		Timestamp ts = new Timestamp(System.currentTimeMillis() + 86400000L);
		return new SimpleDateFormat("yyyyMMdd").format(ts);
	}

	public static String getCurrentMonth() {
		Timestamp ts = new Timestamp(System.currentTimeMillis());
		return new SimpleDateFormat("MM").format(ts);
	}

	public static String getCurrentYear() {
		Timestamp ts = new Timestamp(System.currentTimeMillis());
		return new SimpleDateFormat("yyyy").format(ts);
	}

	public static int getCurrentYearInt() {
		return Integer.parseInt(getCurrentYear());
	}

	public static int getNextYearInt() {
		return (getCurrentYearInt() + 1);
	}

	public static String getCurrentDay() {
		Timestamp ts = new Timestamp(System.currentTimeMillis());
		return new SimpleDateFormat("dd").format(ts);
	}

	public static int getCurrentWeek() {
		Calendar cd = Calendar.getInstance();
		cd.setFirstDayOfWeek(2);
		cd.setMinimalDaysInFirstWeek(7);
		cd.setTime(new java.util.Date());
		return cd.get(3);
	}

	public static int getMaxWeekOfYear() {
		Calendar cd = Calendar.getInstance();
		cd.setFirstDayOfWeek(2);
		cd.setMinimalDaysInFirstWeek(7);
		cd.setTime(new java.util.Date());
		if ((cd.get(2) == 0) && (cd.get(5) < 7)) {
			return cd.get(3);
		}
		cd.set(cd.get(1), 11, 31);
		return cd.get(3);
	}

	/** @deprecated */
	public static String getDifDate(int cl) {
		SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
		Calendar c = Calendar.getInstance();
		int d = c.get(5);
		d += cl;
		c.set(5, d);
		return df.format(c.getTime());
	}

	/** @deprecated */
	public static String getDifDate(String olddate, int cl) {
		SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
		Calendar c = Calendar.getInstance();
		c.set(1, Integer.parseInt(olddate.substring(0, 4)));
		c.set(2, Integer.parseInt(olddate.substring(4, 6)) - 1);
		c.set(5, Integer.parseInt(olddate.substring(6, 8)));
		int d = c.get(5);
		d += cl;
		c.set(5, d);
		return df.format(c.getTime());
	}

	public static int getMaxDayOfMonth() {
		int dqnd = Integer.parseInt(getCurrentYear());
		int dqyd = Integer.parseInt(getCurrentMonth());
		return getMaxDayOfMonth(dqnd, dqyd);
	}

	public static int getMaxDayOfMonth(int year, int mon) {
		int dqnd = year;
		int dqyd = mon;
		if (dqyd == 12) {
			++dqnd;
			dqyd = 1;
		} else {
			++dqyd;
		}
		java.sql.Date xydyt = java.sql.Date.valueOf(dqnd + "-" + dqyd + "-1");
		Timestamp ts = new Timestamp(xydyt.getTime() - 86400000L);
		String day = new SimpleDateFormat("dd").format(ts);
		return Integer.parseInt(day);
	}

	public static String getString(java.sql.Date date) {
		Timestamp ts = new Timestamp(date.getTime());
		String day = new SimpleDateFormat("yyyyMMdd").format(ts);
		return day;
	}

	public static long getDifday(String olddate, String newdate) {
		String strri = olddate.substring(6, 8);
		String stryd = olddate.substring(4, 6);
		String strnd = olddate.substring(0, 4);
		java.sql.Date dolddate = java.sql.Date.valueOf(strnd + "-" + stryd
				+ "-" + strri);
		strri = newdate.substring(6, 8);
		stryd = newdate.substring(4, 6);
		strnd = newdate.substring(0, 4);
		java.sql.Date dnewdate = java.sql.Date.valueOf(strnd + "-" + stryd
				+ "-" + strri);
		long a = (dnewdate.getTime() - dolddate.getTime()) / 86400000L;
		return a;
	}

	public static long getDifday(int year, int mon, int oldday, int newday) {
		String strri = String.valueOf(oldday);
		String stryd = String.valueOf(mon);
		String strnd = String.valueOf(year);
		java.sql.Date dolddate = java.sql.Date.valueOf(strnd + "-" + stryd
				+ "-" + strri);
		strri = String.valueOf(newday);
		stryd = String.valueOf(mon);
		strnd = String.valueOf(year);
		java.sql.Date dnewdate = java.sql.Date.valueOf(strnd + "-" + stryd
				+ "-" + strri);
		long a = (dnewdate.getTime() - dolddate.getTime()) / 86400000L;
		return a;
	}

	public static String[] getNext12Month(int year, int month) {
		String[] ret = new String[12];
		int nextYear = year;
		int nextMonth = month;
		for (int i = 0; i < 12; ++i) {
			if (++nextMonth > 12) {
				++nextYear;
				nextMonth = 1;
			}
			ret[i] = new String(String.valueOf(nextYear) + "/"
					+ String.valueOf(nextMonth));
		}

		return ret;
	}

	public static String[] getNext12Month() {
		int year = Integer.parseInt(getCurrentYear());
		int month = Integer.parseInt(getCurrentMonth());
		return getNext12Month(year, month);
	}

	public static String parseTimeStr(long time) {
		String ret = new String();
		String temp = Long.toString(time);
		if (temp.length() > 13)
			ret = temp.substring(0, 4) + "年" + temp.substring(4, 6) + "月"
					+ temp.substring(6, 8) + "日" + temp.substring(8, 10) + "时"
					+ temp.substring(10, 12) + "分";
		return ret;
	}

	/** @deprecated */
	public static int date2int(String date) {
		String temp = date.substring(0, date.indexOf("-"));
		String a = date.substring(date.indexOf("-") + 1);
		String b = a.substring(0, a.indexOf("-"));
		temp = temp
				+ ((b.length() >= 2) ? b : new StringBuffer("0").append(b)
						.toString());
		b = a.substring(a.indexOf("-") + 1);
		temp = temp
				+ ((b.length() >= 2) ? b : new StringBuffer("0").append(b)
						.toString());
		return Integer.parseInt(temp);
	}

	/** @deprecated */
	public static String int2date(int inte) {
		String a = String.valueOf(inte);
		String temp = a.substring(0, 4);
		temp = temp
				+ "-"
				+ ((a.substring(4, 5).equals("0")) ? a.substring(5, 6) : a
						.substring(4, 6));
		temp = temp
				+ "-"
				+ ((a.substring(6, 7).equals("0")) ? a.substring(7, 8) : a
						.substring(6, 8));
		return temp;
	}

	public static int getDayOfWeek(int year, int mon, int day) {
		Calendar cal = new GregorianCalendar(year, mon - 1, day);
		int dayOfWeek = cal.get(7);
		if (dayOfWeek - 1 == 0) {
			return 7;
		}
		return (dayOfWeek - 1);
	}

	public static java.util.Date ChangeDateFormat(String date, String format) {
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		try {
			return sdf.parse(date);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return new java.util.Date();
	}

	public static java.util.Date ChangeDateFormat(String date) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try {
			return sdf.parse(date);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return new java.util.Date();
	}

	public static String ChangeDateFormat(Timestamp time) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		if (time == null) {
			return sdf.format(new java.util.Date());
		}
		return sdf.format(time);
	}

	public static String ChangeDateFormat(Timestamp time, String format) {
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		if (time == null) {
			return sdf.format(new java.util.Date());
		}
		return sdf.format(time);
	}

	public static String ChangeDateFormat(java.util.Date date, String format) {
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		if (date == null) {
			return sdf.format(new java.util.Date());
		}
		return sdf.format(date);
	}

	public static String ChangeDateFormat(java.util.Date date) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		if (date == null) {
			return sdf.format(new java.util.Date());
		}
		return sdf.format(date);
	}
}

你可能感兴趣的:(日期)