展示Date类的常用功能,知道功能作用就可以
public class Date
implements java.io.Serializable, Cloneable, Comparable<Date>{
private static final BaseCalendar gcal =
CalendarSystem.getGregorianCalendar();//日历系统
private static BaseCalendar jcal;
private transient long fastTime;
private transient BaseCalendar.Date cdate;
private static int defaultCenturyStart;
private static final long serialVersionUID = 7523967970034938905L;
//将当前时间初始化fastTime
public Date() {
this(System.currentTimeMillis());
}
//初始化fastTime
public Date(long date) {
fastTime = date;
}
//初始化时间,从1900年1月1号0点开始添加相应的参数时间
public Date(int year, int month, int date) {
this(year, month, date, 0, 0, 0);
}
//初始化时间,从1900年1月1号0点开始添加相应的参数时间
public Date(int year, int month, int date, int hrs, int min) {
this(year, month, date, hrs, min, 0);
}
//初始化时间,从1900年1月1号0点开始添加相应的参数时间
public Date(int year, int month, int date, int hrs, int min, int sec) {
int y = year + 1900;
if (month >= 12) {
y += month / 12;
month %= 12;
} else if (month < 0) {
y += CalendarUtils.floorDivide(month, 12);
month = CalendarUtils.mod(month, 12);
}
BaseCalendar cal = getCalendarSystem(y);
cdate = (BaseCalendar.Date) cal.newCalendarDate(TimeZone.getDefaultRef());
cdate.setNormalizedDate(y, month + 1, date).setTimeOfDay(hrs, min, sec, 0);
getTimeImpl();
cdate = null;
}
//将s初始化时间
public Date(String s) {
this(parse(s));
}
//将s转化为时间戳的long类型
public static long parse(String s) {
int year = Integer.MIN_VALUE;
int mon = -1;
int mday = -1;
int hour = -1;
int min = -1;
int sec = -1;
int millis = -1;
int c = -1;
int i = 0;
int n = -1;
int wst = -1;
int tzoffset = -1;
int prevc = 0;
syntax:
{
if (s == null)
break syntax;
int limit = s.length();
while (i < limit) {
c = s.charAt(i);
i++;
if (c <= ' ' || c == ',')
continue;
if (c == '(') {
// skip comments
int depth = 1;
while (i < limit) {
c = s.charAt(i);
i++;
if (c == '(') depth++;
else if (c == ')')
if (--depth <= 0)
break;
}
continue;
}
if ('0' <= c && c <= '9') {
n = c - '0';
while (i < limit && '0' <= (c = s.charAt(i)) && c <= '9') {
n = n * 10 + c -