import java.io.PrintStream;
import java.sql.Time;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DateUtil
{
public static final String C_TIME_PATTON_DEFAULT = "yyyy-MM-dd HH:mm:ss";
public static final String C_DATE_PATTON_DEFAULT = "yyyy-MM-dd";
public static final int C_ONE_SECOND = 1000;
public static final int C_ONE_MINUTE = 60000;
public static final long C_ONE_HOUR = 3600000L;
public static final long C_ONE_DAY = 86400000L;
public String getMonthBegin(String strdate)
{
java.util.Date date = parseDate(strdate);
return formatDateByFormat(date, "yyyy-MM") + "-01";
}
public String getMonthEnd(String strdate)
{
java.util.Date date = parseDate(getMonthBegin(strdate));
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(2, 1);
calendar.add(6, -1);
return formatDate(calendar.getTime());
}
public String formatDate(java.util.Date date)
{
return formatDateByFormat(date, "yyyy-MM-dd");
}
public String formatDateByFormat(java.util.Date date, String format)
{
String result = "";
if (date != null) {
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
result = sdf.format(date);
} catch (Exception ex) {
ex.printStackTrace();
}
}
return result;
}
public static java.util.Date parseDate(String dateStr, String format)
{
java.util.Date date = null;
try {
DateFormat df = new SimpleDateFormat(format);
String dt = dateStr;
if ((!dt.equals("")) && (dt.length() < format.length())) {
dt = dt + format.substring(dt.length()).replaceAll("[YyMmDdHhSs]", "0");
}
date = df.parse(dt);
} catch (Exception localException) {
}
return date;
}
public static java.util.Date parseDate(String dateStr) {
return parseDate(dateStr, "yyyy-MM-dd");
}
public static java.util.Date parseDate(java.sql.Date date)
{
return date;
}
public static java.sql.Date parseSqlDate(java.util.Date date) {
if (date != null) {
return new java.sql.Date(date.getTime());
}
return null;
}
public static java.sql.Date parseSqlDate(String dateStr, String format) {
java.util.Date date = parseDate(dateStr, format);
return parseSqlDate(date);
}
public static java.sql.Date parseSqlDate(String dateStr) {
return parseSqlDate(dateStr, "yyyy-MM-dd");
}
public static Timestamp parseTimestamp(String dateStr, String format) {
java.util.Date date = parseDate(dateStr, format);
if (date != null) {
long t = date.getTime();
return new Timestamp(t);
}
return null;
}
public static Timestamp parseTimestamp(String dateStr) {
return parseTimestamp(dateStr, "yyyy-MM-dd HH:mm:ss");
}
public static String format(java.util.Date date, String format)
{
String result = "";
try {
if (date != null) {
DateFormat df = new SimpleDateFormat(format);
result = df.format(date);
}
} catch (Exception localException) {
}
return result;
}
public static String format(java.util.Date date)
{
return format(date, "yyyy-MM-dd");
}
public static int getYear(java.util.Date date)
{
Calendar c = Calendar.getInstance();
c.setTime(date);
return c.get(1);
}
public static int getMonth(java.util.Date date)
{
Calendar c = Calendar.getInstance();
c.setTime(date);
return c.get(2) + 1;
}
public static int getDay(java.util.Date date)
{
Calendar c = Calendar.getInstance();
c.setTime(date);
return c.get(5);
}
public static int getHour(java.util.Date date)
{
Calendar c = Calendar.getInstance();
c.setTime(date);
return c.get(11);
}
public static int getMinute(java.util.Date date)
{
Calendar c = Calendar.getInstance();
c.setTime(date);
return c.get(12);
}
public static int getSecond(java.util.Date date)
{
Calendar c = Calendar.getInstance();
c.setTime(date);
return c.get(13);
}
public static long getMillis(java.util.Date date)
{
Calendar c = Calendar.getInstance();
c.setTime(date);
return c.getTimeInMillis();
}
public static long getMillis()
{
return System.currentTimeMillis();
}
public static String getDate(java.util.Date date)
{
return format(date, "yyyy-MM-dd");
}
public static String getTimeStr(java.util.Date date)
{
return format(date, "HH:mm:ss");
}
public static String getDateTime(java.util.Date date)
{
return format(date, "yyyy-MM-dd HH:mm:ss");
}
public static java.util.Date addDate(java.util.Date date, int day)
{
Calendar c = Calendar.getInstance();
c.setTimeInMillis(getMillis(date) + day * 24L * 3600L * 1000L);
return c.getTime();
}
public static int diffDate(java.util.Date date, java.util.Date date1)
{
return (int)((getMillis(date) - getMillis(date1)) / 86400000L);
}
public static java.util.Date getDateTime(String datetime)
{
SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (datetime.length() < 11) {
datetime = datetime + " 12:00:00";
}
try
{
java.util.Date udate = dt.parse(datetime);
return udate;
} catch (Exception e) {
e.printStackTrace();
}return null;
}
public static java.util.Date getEndDateTime()
{
String date = "2039-12-31 12:00:00";
return getDateTime(date);
}
public static java.util.Date getbeginDateTime()
{
String date = "1970-01-01 12:00:00";
return getDateTime(date);
}
public static Timestamp getNowTimestamp()
{
return new Timestamp(new java.util.Date().getTime());
}
public static Timestamp getTimestamp(java.util.Date date) {
return new Timestamp(date.getTime());
}
public static Time getTime(java.util.Date date) {
return new Time(date.getTime());
}
public static Time getNowTime() {
return new Time(new java.util.Date().getTime());
}
public static java.util.Date getNowDate()
{
return new java.util.Date();
}
public static String getNowDateStr()
{
String format = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(new java.util.Date());
}
public static String getDateStr(java.util.Date date) {
String format = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
public static int findMaxDayInMonth()
{
return findMaxDayInMonth(0, 0);
}
public static int findMaxDayInMonth(java.util.Date date)
{
if (date == null) {
return 0;
}
return findMaxDayInMonth(date2Calendar(date));
}
public static int findMaxDayInMonth(Calendar calendar)
{
if (calendar == null) {
return 0;
}
return calendar.getActualMaximum(5);
}
public static int findMaxDayInMonth(int month)
{
return findMaxDayInMonth(0, month);
}
public static int findMaxDayInMonth(int year, int month)
{
Calendar calendar = Calendar.getInstance();
if (year > 0) {
calendar.set(1, year);
}
if (month > 0) {
calendar.set(2, month - 1);
}
return findMaxDayInMonth(calendar);
}
public static java.util.Date calendar2Date(Calendar calendar)
{
if (calendar == null) {
return null;
}
return calendar.getTime();
}
public static Calendar date2Calendar(java.util.Date date)
{
if (date == null) {
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar;
}
public static SimpleDateFormat getSimpleDateFormat()
{
return getSimpleDateFormat(null);
}
public static SimpleDateFormat getSimpleDateFormat(String format)
{
SimpleDateFormat sdf;
SimpleDateFormat sdf;
if (format == null)
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
else {
sdf = new SimpleDateFormat(format);
}
return sdf;
}
public static String formatDate2Str()
{
return formatDate2Str(new java.util.Date());
}
public static String formatDate2Str(java.util.Date date)
{
return formatDate2Str(date, "yyyy-MM-dd HH:mm:ss");
}
public static String formatDate2Str(java.util.Date date, String format)
{
if (date == null) {
return null;
}
if ((format == null) || (format.equals(""))) {
format = "yyyy-MM-dd HH:mm:ss";
}
SimpleDateFormat sdf = getSimpleDateFormat(format);
return sdf.format(date);
}
public static java.util.Date formatStr2Date(String dateStr)
{
return formatStr2Date(dateStr, null);
}
public static java.util.Date formatStr2Date(String dateStr, String format)
{
if (dateStr == null) {
return null;
}
if ((format == null) || (format.equals(""))) {
format = "yyyy-MM-dd HH:mm:ss";
}
SimpleDateFormat sdf = getSimpleDateFormat(format);
return sdf.parse(dateStr, new ParsePosition(0));
}
public static String formatDefault2Define(String dateStr, String defineFormat)
{
return formatSource2Target(dateStr, "yyyy-MM-dd HH:mm:ss", defineFormat);
}
public static String formatSource2Target(String dateStr, String sourceFormat, String targetFormat)
{
java.util.Date date = formatStr2Date(dateStr, sourceFormat);
return formatDate2Str(date, targetFormat);
}
public static int findWeeksNoInYear()
{
return findWeeksNoInYear(new java.util.Date());
}
public static int findWeeksNoInYear(java.util.Date date)
{
if (date == null) {
return 0;
}
return findWeeksNoInYear(date2Calendar(date));
}
public static int findWeeksNoInYear(Calendar calendar)
{
if (calendar == null) {
return 0;
}
return calendar.get(3);
}
public static java.util.Date findDateInWeekOnYear(int year, int weekInYear, int dayInWeek)
{
Calendar calendar = Calendar.getInstance();
if (year > 0) {
calendar.set(1, year);
}
calendar.set(3, weekInYear);
calendar.set(7, dayInWeek);
return calendar.getTime();
}
public static java.util.Date dayBefore2Date(int days)
{
java.util.Date date = new java.util.Date();
return (java.util.Date)dayBefore2Object(days, null, date);
}
public static String dayBefore2Str(int days)
{
String string = formatDate2Str();
return (String)dayBefore2Object(days, null, string);
}
public static <T> T dayBefore2Object(int days, String format, T instance)
{
Calendar calendar = Calendar.getInstance();
if (days == 0) {
return null;
}
if ((format == null) || (format.equals(""))) {
format = "yyyy-MM-dd HH:mm:ss";
}
calendar.add(5, days);
if ((instance instanceof java.util.Date))
return calendar.getTime();
if ((instance instanceof String)) {
return formatDate2Str(calendar2Date(calendar), format);
}
return null;
}
public static java.util.Date defineDayBefore2Date(java.util.Date date, int days)
{
java.util.Date dateInstance = new java.util.Date();
return (java.util.Date)defineDayBefore2Object(date, days, null, dateInstance);
}
public static String defineDayBefore2Str(java.util.Date date, int days)
{
String stringInstance = formatDate2Str();
return (String)defineDayBefore2Object(date, days, null, stringInstance);
}
public static <T> T defineDayBefore2Object(java.util.Date date, int days, String format, T instance)
{
if ((date == null) || (days == 0)) {
return null;
}
if ((format == null) || (format.equals(""))) {
format = "yyyy-MM-dd HH:mm:ss";
}
Calendar calendar = date2Calendar(date);
calendar.add(5, days);
if ((instance instanceof java.util.Date))
return calendar.getTime();
if ((instance instanceof String)) {
return formatDate2Str(calendar2Date(calendar), format);
}
return null;
}
public static java.util.Date monthBefore2Date(int months)
{
java.util.Date date = new java.util.Date();
return (java.util.Date)monthBefore2Object(months, null, date);
}
public static String monthBefore2Str(int months)
{
String string = formatDate2Str();
return (String)monthBefore2Object(months, null, string);
}
public static <T> T monthBefore2Object(int months, String format, T instance)
{
if (months == 0) {
return null;
}
if ((format == null) || (format.equals(""))) {
format = "yyyy-MM-dd HH:mm:ss";
}
Calendar calendar = Calendar.getInstance();
calendar.add(2, months);
if ((instance instanceof java.util.Date))
return calendar.getTime();
if ((instance instanceof String)) {
return formatDate2Str(calendar2Date(calendar), format);
}
return null;
}
public static java.util.Date defineMonthBefore2Date(java.util.Date date, int months)
{
java.util.Date dateInstance = new java.util.Date();
return (java.util.Date)defineMonthBefore2Object(date, months, null, dateInstance);
}
public static String defineMonthBefore2Str(java.util.Date date, int months)
{
String stringInstance = formatDate2Str();
return (String)defineMonthBefore2Object(date, months, null, stringInstance);
}
public static <T> T defineMonthBefore2Object(java.util.Date date, int months, String format, T instance)
{
if (months == 0) {
return null;
}
if ((format == null) || (format.equals(""))) {
format = "yyyy-MM-dd HH:mm:ss";
}
Calendar calendar = date2Calendar(date);
calendar.add(2, months);
if ((instance instanceof java.util.Date))
return calendar.getTime();
if ((instance instanceof String)) {
return formatDate2Str(calendar2Date(calendar), format);
}
return null;
}
public static int caculate2Days(java.util.Date firstDate, java.util.Date secondDate)
{
Calendar calendar = Calendar.getInstance();
calendar.setTime(firstDate);
int dayNum1 = calendar.get(6);
calendar.setTime(secondDate);
int dayNum2 = calendar.get(6);
return Math.abs(dayNum1 - dayNum2);
}
public static int caculate2Days(Calendar firstCalendar, Calendar secondCalendar)
{
if (firstCalendar.after(secondCalendar)) {
Calendar calendar = firstCalendar;
firstCalendar = secondCalendar;
secondCalendar = calendar;
}
long calendarNum1 = firstCalendar.getTimeInMillis();
long calendarNum2 = secondCalendar.getTimeInMillis();
return Math.abs((int)((calendarNum1 - calendarNum2) / 86400000L));
}
public static java.util.Date getDefaultDate()
{
java.util.Date date = null;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
date = dateFormat.parse("1900-01-01");
}
catch (Exception localException) {
}
return date;
}
public static java.util.Date getDateByFormat(String dateString, String formatString)
{
if ((dateString == null) || (dateString.trim().equals(""))) {
return null;
}
if (formatString == null) {
formatString = "yyyy-MM-dd";
}
SimpleDateFormat dateFormat = new SimpleDateFormat(formatString);
try {
return dateFormat.parse(dateString);
}
catch (Exception localException) {
}
return null;
}
public static String getDateTimeString(java.util.Date date, String formatString) {
if (formatString == null) {
formatString = "yyyy-MM-dd HH:mm:ss";
}
SimpleDateFormat dateFormat = new SimpleDateFormat(formatString);
String str = dateFormat.format(date);
if (str.indexOf("00:00:00") > -1) {
str = str.substring(0, 10);
}
return str;
}
public static String getDateTimeString(java.util.Date date) {
return getDateTimeString(date, null);
}
public static String getDateString(java.util.Date date, String formatString) {
if (formatString == null) {
formatString = "yyyy-MM-dd";
}
SimpleDateFormat dateFormat = new SimpleDateFormat(formatString);
return dateFormat.format(date);
}
public static String getDateString(java.util.Date date) {
return getDateTimeString(date, null);
}
public static String getNowDate(String formatString)
{
java.util.Date date = new java.util.Date();
if (formatString == null) {
formatString = "yyyy-MM-dd HH:mm:ss";
}
SimpleDateFormat dateFormat = new SimpleDateFormat(formatString);
return dateFormat.format(date);
}
public static String getFormateTime(java.util.Date beginTime, java.util.Date endTime)
throws Exception
{
long between = endTime.getTime() - beginTime.getTime();
long hour = between / 1000L / 3600L;
long minute = between / 1000L % 3600L / 60L;
long second = between / 1000L % 3600L % 60L;
if ((hour < 0L) || (minute < 0L) || (second < 0L)) {
throw new Exception("开始时间大于结束时间");
}
StringBuffer active = new StringBuffer().append(hour).append(":");
if (minute < 10L)
active.append("0").append(minute).append(":");
else {
active.append(minute).append(":");
}
if (second < 10L)
active.append("0").append(second);
else {
active.append(second);
}
return active.toString();
}
public static String getFormateTemeByLong(long between)
{
long hour = between / 3600L;
long minute = between % 3600L / 60L;
long second = between % 3600L % 60L;
StringBuffer active = new StringBuffer().append(hour).append(":");
if (minute < 10L)
active.append("0").append(minute).append(":");
else {
active.append(minute).append(":");
}
if (second < 10L)
active.append("0").append(second);
else {
active.append(second);
}
return active.toString();
}
public static void main(String[] args)
{
Calendar firstC = date2Calendar(formatStr2Date("2009-07-22", "yyyy-MM-dd"));
Calendar secondC = date2Calendar(formatStr2Date("2009-07-18", "yyyy-MM-dd"));
System.out.println(caculate2Days(firstC, secondC));
}
}
java日期工具类
最新推荐文章于 2024-05-17 14:46:22 发布