Кода -копия выглядит следующим образом:
импортировать java.text.parseexception;
импортировать java.text.simpledateformat;
импортировать java.util.calendar;
импортировать java.util.date;
импортировать java.util.gregoriancalendar;
импортировать java.util.timezone;
/**
* Функция обработки времени
*
* @20080509 15:50
*/
открытый класс DateUtil {
Приватная статическая конечная строка default_pattern = "yyyy-mm-dd Hh: MM: SS";
Public Static Final String Time_year = "yyyy";
public static final String time_monen = "mm";
public Static Final String Time_Day = "dd";
public Static String getDate (строковый интервал, дата начала, String Pattern) {
Календарь temp = calendar.getInstance (timezone.getDefault ());
temp.settime (startTime);
temp.add (temp.month, integer.parseint (интервал));
SimpleDateFormat SDF = new SimpleDateFormat (Pattern);
return sdf.format (temp.gettime ());
}
/**
* Преобразовать тип строки в тип времени
*
* @возвращаться
*/
публичная статическая дата str2date (string str) {
Дата D = NULL;
SimpleDateFormat sdf = new SimpleDateFormat (default_pattern);
пытаться {
d = sdf.parse (str);
} catch (Exception e) {
e.printstacktrace ();
}
возврат D;
}
публичная статическая дата str2date (String Str, String Pattern) {
Дата D = NULL;
SimpleDateFormat SDF = new SimpleDateFormat (Pattern);
пытаться {
d = sdf.parse (str);
} catch (Exception e) {
e.printstacktrace ();
}
возврат D;
}
/**
* Форматировать время
*
* @возвращаться
*/
Публичная статическая дата DatePattern (дата даты) {
SimpleDateFormat sdf = new SimpleDateFormat (default_pattern);
пытаться {
String dd = sdf.format (date);
date = str2date (dd);
} catch (Exception e) {
e.printstacktrace ();
}
Дата возвращения;
}
/**
* Форматировать время
*/
Публичная статическая дата DatePattern (дата дата, образец строки) {
SimpleDateFormat SDF = new SimpleDateFormat (Pattern);
пытаться {
String dd = sdf.format (date);
date = str2date (dd, pattern);
} catch (Exception e) {
e.printstacktrace ();
}
Дата возвращения;
}
публичная статическая строка Date2str (дата дата) {
SimpleDateFormat sdf = new SimpleDateFormat (default_pattern);
вернуть sdf.format (date);
}
public Static String Date2str (дата дата, формат строки) {
SimpleDateFormat SDF = new SimpleDateFormat (format);
вернуть sdf.format (date);
}
/**
* Получите вчера
*
* @param дата
* @возвращаться
* @ThrohS Exception
*/
Публичная статическая дата getlastdate (дата даты) {
Календарь календарь = календарь.getInstance (Timezone.getDefault ());
Calendar.SetTime (дата);
Calendar.add (Calendar.date, -1);
return str2date (date2str (calendar.gettime ()));
}
/**
* Получите это несколько дней назад
* @param дата
* @возвращаться
*/
Публичная статическая дата getBefordate (дата даты, дата int) {
Календарь календарь = календарь.getInstance (Timezone.getDefault ());
Calendar.SetTime (дата);
Calendar.add (Calendar.date, -dates);
return str2date (date2str (calendar.gettime ()));
}
/**
* Получите первый день прошлой недели (понедельник)
*
* @param дата
* @возвращаться
* @ThrohS Exception
*/
Публичная статическая дата getlastweekstart (дата даты) {
Календарь календарь = календарь.getInstance (Timezone.getDefault ());
Calendar.SetTime (дата);
int i = calendar.get (calendar.day_of_week) - 1;
int startnum = 0;
if (i == 0) {
Startnum = 7 + 6;
} еще {
startNum = 7 + i - 1;
}
calendar.add (calendar.date, -startnum);
return str2date (date2str (calendar.gettime ()));
}
/**
* Получите последний день прошлой недели (выходные)
*
* @param дата
* @возвращаться
* @ThrohS Exception
*/
Публичная статическая дата getlastweekend (дата даты) {
Календарь календарь = календарь.getInstance (Timezone.getDefault ());
Calendar.SetTime (дата);
int i = calendar.get (calendar.day_of_week) - 1;
int endnum = 0;
if (i == 0) {
endnum = 7;
} еще {
endnum = i;
}
calendar.add (calendar.date, - (endnum - 1));
return str2date (date2str (calendar.gettime ()));
}
/**
* Получить дни на основе года и месяца
* @param num месяц
* @param Год
* @возвращаться
*/
public static int getday (int num, int year) {
if (num == 1 || num == 3 || num == 5 || num == 7 || num == 8 || num == 10 || num == 12) {
возврат 31;
} else if (num == 2) {
// Судят, является ли это старовым годом
if (Год%400 == 0 || (Год%4 == 0 && Год%100! = 0)) {
возврат 29;
}еще{
возврат 28;
}
}еще{
возврат 30;
}
}
/*
* Рассчитайте, сколько дней в текущей дате в следующем месяце
*/
public static int getDaymis (дата времени) {
int Год = integer.parseint (
new SimpleDateFormat (time_year) .format (time)); // год
int mm = integer.parseint (
new SimpleDateFormat (time_monen) .format (time)); // месяц
int dd = integer.parseint (
new SimpleDateFormat (time_day) .format (time)); // день
// Получить общее количество дней в текущем году и месяце
int sdd = getDay (мм, год);
вернуть SDD-DD;
}
/**
* Дата номер секунды
* @param Datestring
* @возвращаться
*/
Public Static Long Time (String DateString) {
давно = 0;
пытаться {
Дата ret = null;
SimpleDateFormat SDF = new SimpleDateFormat ("yyyy-mm-dd HH: MM: SS");
ret = sdf.parse (datestring);
время = ret.gettime ()/1000;
} catch (Exception e) {
}
Время возвращения;
}
/**
* Точно рассчитайте разницу во времени, точную до дня
* @param fistill дата начала
* @param сейчас дата окончания
* Тип типа @param - 1 и возврат Год, месяц и день (например: 2 года, 3 месяца и 5 дней). В противном случае верните общее количество дней
* @возвращаться
*/
Public Static String Patienage (Date Fistill, Date Nowtime, Integer Type) {
int fight = integer.parseint (
new SimpleDateFormat (time_year) .format (fistill)); // первый год
int fmm = integer.parseint (
new SimpleDateFormat (time_monen) .format (fistill)); // первый месяц
int fdd = integer.parseint (
new SimpleDateFormat (time_day) .format (fistill)); // первая дата
int nyear = integer.parseint (
new SimpleDateFormat (time_year) .format (сейчас время)); // Конец года
int nmm = integer.parseint (
new SimpleDateFormat (time_monen) .format (сейчас время)); // конец месяца
int ndd = integer.parseint (
new SimpleDateFormat (time_day) .format (сейчас время)); // дата окончания
int cyber = nyear - fyear;
int cmmm = nmm - fmm;
int cdd = ndd - fdd;
int zyear = 0;
int zmm = 0;
int zdd = 0;
int countddd = 0;
if (cdd <0) {
if (cm <0) {
Zyear = Cyar - 1;
zmm = (cmm + 12) -1;
int dd = getDay (ZMM, NYEAR-1);
zdd = dd + cdd;
countddd = zyear*365+zmm*30+zdd;
} else if (cmm == 0) {
Zyear = Cyar - 1;
zmm = 12-1;
int dd = getDay (ZMM, NYEAR-1);
zdd = dd + cdd;
countddd = zyear*365+zmm*30+zdd;
}еще{
Zyear = Cinear;
zmm = cmmm - 1;
int dd = getDay (Zmm, Nyear);
zdd = dd + cdd;
countddd = zyear*365+zmm*30+zdd;
}
} else if (cdd == 0) {
if (cm <0) {
Zyear = Cyar - 1;
zmm = cmmm + 12;
zdd = 0;
countddd = zyear*365+zmm*30;
} else if (cmm == 0) {
Zyear = Cinear;
zmm = 0;
zdd = 0;
countddd = zyear*365+zmm*30;
}еще{
Zyear = Cinear;
zmm = cmmm;
zdd = 0;
countddd = zyear*365+zmm*30;
}
}еще{
if (cm <0) {
Zyear = Cyar - 1;
zmm = cmmm + 12;
zdd = cdd;
countddd = zyear*365+zmm*30+zdd;
} else if (cmm == 0) {
Zyear = Cinear;
zmm = 0;
zdd = cdd;
countddd = zyear*365+zmm*30+zdd;
}еще{
Zyear = Cinear;
zmm = cmmm;
zdd = cdd;
countddd = zyear*365+zmm*30+zdd;
}
}
String ptime = null;
if (zdd! = 0) {
if (zmm! = 0) {
if (zyear! = 0) {
ptime = zyear+"Год"+Zmm+"месяц"+"Zero"+zdd+"день";
}еще{
ptime = zmm+"месяц"+"ноль"+zdd+"день";
}
}еще{
if (zyear! = 0) {
ptime = Zyear+"Год"+"Zero"+zdd+"день";
}еще{
ptime = zdd+"день";
}
}
}еще{
if (zmm! = 0) {
if (zyear! = 0) {
ptime = Zyear+"Год"+ZMM+"месяц";
}еще{
ptime = zmm+"месяц";
}
}еще{
if (zyear! = 0) {
ptime = Zyear+"Год";
}еще{
ptime = null;
}
}
}
if (type == 1) {
возвращение Ptime;
}еще{
return string.valueof (countddd);
}
}
/**
* Получите количество месяцев
* @param Год
* @param месяц разница
* @возвращаться
*/
public static int getcmm (целый год, целый месяц) {
int zmm = 0;
if (месяц <0) {
zmm = (месяц + 12) + (год-1)*12;
} else if (месяц == 0) {
zmm = год*12;
}еще{
zmm = год*12+месяц;
}
вернуть ZMM;
}
/**
* Измените текущее время
*/
Публичная статическая дата изменена (тип строки, int value) {
Календарь календарь = календарь.getInstance (Timezone.getDefault ());
if (type.equals ("месяц")) {
calendar.set (calendar.month, calendar.get (calendar.month) + значение);
} else if (type.equals ("date")) {
calendar.set (calendar.date, calendar.get (calendar.date) + значение);
}
return Calendar.getTime ();
}
/**
* Изменить время
*/
Публичная статическая дата изменена (дата дата, тип строки, int value) {
if (date! = null) {
// календарный календарь = календарь.getinstance (timezone.getdefault ());
Календарь календарь = новый gregoriancalendar ();
Calendar.SetTime (дата);
// Календарь календаря = календарь.
if (type.equals ("месяц")) {
calendar.set (calendar.month, calendar.get (calendar.month) + значение);
} else if (type.equals ("date")) {
calendar.set (calendar.date, calendar.get (calendar.date) + значение);
} else if (type.endswith ("Год")) {
calendar.set (calendar.year, calendar.get (calendar.year) + значение);
}
return Calendar.getTime ();
}
вернуть ноль;
}
/**
* haoxw сравнить, находится ли время между этими двумя временными моментами
*
* @param time1
* @param time2
* @возвращаться
*/
Public Static BooleanceTime (String Time1, String Time2) {
Календарь календарь = календарь.getinstance ();
Дата дата 1 = календарь.getTime ();
Дата дата 11 = dateUtil.str2date (dateutil.date2str (date1, "yyyy-mm-dd") + "" + time1); // время начала
Календарь c = календарь.getinstance ();
C.Add (Calendar.Date, 1);
Дата Дата 2 = C.GetTime ();
Дата дата 22 = dateUtil.str2date (dateutil.date2str (date2, "yyyy-mm-dd") + "" + time2); // время завершения
Календарь Scalendar = calendar.getInstance ();
Scalendar.settime (Date11); // Время начала
Календарь elendar = calendar.getInstance ();
elendar.settime (дата 22); // время завершения
Календарь календарноу = календарь.getinstance ();
if (calendarnow.after (scalendar) && calendarnow.bofore (Evalendar)) {
вернуть истину;
} еще {
вернуть ложь;
}
}
/**
* haoxw сравнить, находится ли время между этими двумя временными моментами
*
* @param date11
* @param date22
* @возвращаться
*/
Public Static BooleanceTime (дата дата11, дата дата 22) {
Календарь Scalendar = calendar.getInstance ();
Scalendar.settime (Date11); // Время начала
Календарь elendar = calendar.getInstance ();
elendar.settime (дата 22); // время завершения
Календарь календарноу = календарь.getinstance ();
if (calendarnow.after (scalendar) && calendarnow.bofore (Evalendar)) {
вернуть истину;
} еще {
вернуть ложь;
}
}
Public Static Boolean CheckDate (String Date1, String Date2) {
Дата дата 11 = dateUtil.str2date (date1, "yyyy-mm-dd Hh: MM: SS"); // Время начала
Дата дата 22 = dateUtil.str2date (date2, "yyyy-mm-dd Hh: mm: ss"); // время завершения
Календарь Scalendar = calendar.getInstance ();
Scalendar.settime (Date11); // Время начала
Календарь elendar = calendar.getInstance ();
elendar.settime (дата 22); // время завершения
Календарь календарноу = календарь.getinstance ();
System.out.println (date11.toString ());
System.out.println (date22.toString ());
System.out.println (Scalendar.toString ());
System.out.println (elendar.toString ());
System.out.println (calendarnow.tostring ());
if (calendarnow.after (scalendar) && calendarnow.bofore (Evalendar)) {
вернуть истину;
} еще {
вернуть ложь;
}
}
/**
* Получите дату перед интервалами
*
* @param интервал
* @param starttime
* @param pattern
* @возвращаться
*/
Публичная статическая дата GetIntervaldate (String Interval, Date Starttime, String Pattern) {
Календарь Temp = calendar.getInstance ();
temp.settime (startTime);
temp.add (temp.date, integer.parseint (интервал));
SimpleDateFormat SDF = new SimpleDateFormat (Pattern);
String shijian = sdf.format (temp.gettime ());
вернуть str2date (Shijian);
}
публичная статическая дата формат (дата дата) {
SimpleDateFormat BartDateFormat =
new SimpleDateFormat ("yyyy-mm-dd");
System.out.println (bartdateformat.format (date));
SimpleDateFormat BartDateFormat1 = new SimpleDateFormat ("yyyy-mm-dd");
пытаться {
DATE DATE1 = BARTDATEFORMAT1.parse (bartdateformat.format (date));
} catch (parseException e) {
e.printstacktrace ();
}
System.out.println (date.getTime ());
Дата возвращения;
}
public static void main (String arf []) {
/*String Time1 = "2009-05-07 19:20:00";
String Time2 = "2009-05-08 19:30:00";
DateUtil D = New DateUtil ();
System.out.println (D.CheckDate (Time1, Time2));
System.out.println (D.Date2str (New Date ()));*/
//System.out.println(d.getIntervaldate("-3 ", new Date (), default_pattern));
Календарь календарь = календарь.getInstance (Timezone.getDefault ());
System.out.println (Calendar.toString ());
System.out.println (dateutil.str2date ("20090731", "yyyymmdd"));
System.out.println (dateutil.getbefordate (new Date (), 2));
System.out.println (dateutil.datepattern (new Date ()));
SimpleDateFormat BartDateFormat =
new SimpleDateFormat ("yyyy-mm-dd");
Дата дата = новая дата ();
System.out.println ("date;"+bartdateformat.format (date));
SimpleDateFormat BartDateFormat1 = new SimpleDateFormat ("yyyy-mm-dd");
пытаться {
DATE DATE1 = BARTDATEFORMAT1.parse (bartdateformat.format (date));
System.out.println ("Date:"+Date1);
} catch (parseException e) {
e.printstacktrace ();
}
}
}