package jse;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.
Date
;
import java.util.Locale;
public
class
TestDate
{
public
static
void main(String[] args) throws ParseException, UnsupportedEncodingException
{
Calendar cal = Calendar.getInstance();
System.out.println(dateToString(cal));
}
public
static
String dateToString(
Date
date
)
{
SimpleDateFormat sdf =
new
SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss"
, Locale.CHINA);
return
sdf.format(
date
);
}
public
static
String dateToString(Calendar cal)
{
return
dateToString(cal.getTime());
}
public
static
Calendar dateStringToCalendar(String dateStr) throws ParseException
{
SimpleDateFormat sdf =
new
SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss"
);
Date
date
= sdf.parse(dateStr);
Calendar cal = Calendar.getInstance();
cal.setTime(
date
);
return
cal;
}
public
static
Date
dateStringToDate(String
date
) throws ParseException
{
SimpleDateFormat sdf =
new
SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss"
);
return
sdf.parse(
date
);
}
public
static
Calendar dateToCalendar(
Date
date
)
{
Calendar c1 = Calendar.getInstance();
c1.setTime(
date
);
return
c1;
}
public
static
Date
CalendarToDate(Calendar cal)
{
return
cal.getTime();
}
public
int[] calculateDifferDay(
Date
d1,
Date
d2)
{
Calendar c1 = Calendar.getInstance();
c1.setTime(d1);
Calendar c2 = Calendar.getInstance();
c1.setTime(d2);
return
calculateDifferDay(c1, c2);
}
public
int[] calculateDifferDay(Calendar c1, Calendar c2)
{
int[] p1 = { c1.get(Calendar.YEAR), c1.get(Calendar.MONTH), c1.get(Calendar.DAY_OF_MONTH) };
int[] p2 = { c2.get(Calendar.YEAR), c2.get(Calendar.MONTH), c2.get(Calendar.DAY_OF_MONTH) };
System.out.println(
"p1[0]="
+ p1[0] +
" p1[1]="
+ p1[1] +
" p1[2]="
+ p1[2]);
System.out.println(
"p2[0]="
+ p2[0] +
" p2[1]="
+ p2[1] +
" p2[2]="
+ p2[2]);
int year = p2[0] - p1[0];
int month = (p2[0] * 12) + p2[1] - ((p1[0] * 12) + p1[1]);
int day = (int) ((c2.getTimeInMillis() - c1.getTimeInMillis()) / (24 * 60 * 60 * 1000));
return
new
int[] { year, month, day };
}
public
static
Calendar getLastDayOfWeek(Calendar c)
{
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return
c;
}
public
static
Calendar addOrDecreaseDay(Calendar c, int day)
{
c.add(Calendar.DAY_OF_MONTH, day);
return
c;
}
public
static
int getLastDayOfMonth(int year, int month)
{
Calendar c = Calendar.getInstance();
c.set(year, month - 1, 1);
return
c.getActualMaximum(Calendar.DAY_OF_MONTH);
}
public
static
int getLastDayOfMonth(Calendar cal)
{
return
cal.getActualMaximum(Calendar.DAY_OF_MONTH);
}
}