package time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TimeDemo {
public static void main(String[] args) throws ParseException {
timeTest();
System.out.println("==============================");
int year = 1987;
int month = Calendar.JANUARY;
int day = 20;
int age = getAge(year, month, day);
System.out.println("age=" + age);
System.out.println("==============================");
boolean isLeapYear = isLeapYear(2000);
System.out.println(isLeapYear);
System.out.println("==============================");
}
private static void timeTest() throws ParseException{
/**
* 由输出结果可知:
* java.util.Date 包含日期和时间
* java.sql.Date 只包含日期
* java.sql.Time 只包含时间
* java.sql.Timestamp 包含日期和时间
* java.util.Calendar 包含该类的所有字段的信息
* java.util.Date是java.sql.Date、java.sql.Time和java.sql.Timestamp的父类
*/
java.util.Date uDate = new java.util.Date();
java.sql.Date sDate = new java.sql.Date(uDate.getTime());
java.sql.Timestamp ts = new java.sql.Timestamp(uDate.getTime());
java.sql.Time time = new java.sql.Time(uDate.getTime());
java.util.Calendar c = java.util.Calendar.getInstance();
System.out.println("java.util.Date -> " + uDate + "\n"
+ "java.sql.Date -> " + sDate + "\n"
+ "java.sql.Timestamp -> " + ts + "\n"
+ "java.sql.Time -> " + time + "\n"
+ "java.util.Calendar -> " + c);
System.out.println("==============================");
System.out.println(System.currentTimeMillis() + "\n"
+ uDate.getTime() + "\n"
+ sDate.getTime() + "\n"
+ ts.getTime() + "\n"
+ time.getTime() + "\n"
+ c.getTime());
System.out.println("==============================");
Date date = new Date();
String format = new SimpleDateFormat("yyyy/MM/dd").format(date);
System.out.println(format);
date = new SimpleDateFormat("yyyy/MM/dd").parse(format);
System.out.println(date);
c.setTime(date);
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println("==============================");
//取当月的最后一天
c = Calendar.getInstance();
int maxDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
format = new SimpleDateFormat("yyyy/MM/" + maxDay).format(c.getTime());
System.out.println("当月的最后一天 -> " + format);
}
private static int getAge(int year, int month, int day){
Calendar birthDate = new GregorianCalendar(year, month, day);
Calendar today = Calendar.getInstance();
int age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR);
//若还没过生日,则age-1
birthDate.add(Calendar.YEAR, age);
if(today.before(birthDate)){
age -= 1;
}
return age;
}
private static boolean isLeapYear(int year){
GregorianCalendar cal = new GregorianCalendar();
return cal.isLeapYear(year);
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TimeDemo {
public static void main(String[] args) throws ParseException {
timeTest();
System.out.println("==============================");
int year = 1987;
int month = Calendar.JANUARY;
int day = 20;
int age = getAge(year, month, day);
System.out.println("age=" + age);
System.out.println("==============================");
boolean isLeapYear = isLeapYear(2000);
System.out.println(isLeapYear);
System.out.println("==============================");
}
private static void timeTest() throws ParseException{
/**
* 由输出结果可知:
* java.util.Date 包含日期和时间
* java.sql.Date 只包含日期
* java.sql.Time 只包含时间
* java.sql.Timestamp 包含日期和时间
* java.util.Calendar 包含该类的所有字段的信息
* java.util.Date是java.sql.Date、java.sql.Time和java.sql.Timestamp的父类
*/
java.util.Date uDate = new java.util.Date();
java.sql.Date sDate = new java.sql.Date(uDate.getTime());
java.sql.Timestamp ts = new java.sql.Timestamp(uDate.getTime());
java.sql.Time time = new java.sql.Time(uDate.getTime());
java.util.Calendar c = java.util.Calendar.getInstance();
System.out.println("java.util.Date -> " + uDate + "\n"
+ "java.sql.Date -> " + sDate + "\n"
+ "java.sql.Timestamp -> " + ts + "\n"
+ "java.sql.Time -> " + time + "\n"
+ "java.util.Calendar -> " + c);
System.out.println("==============================");
System.out.println(System.currentTimeMillis() + "\n"
+ uDate.getTime() + "\n"
+ sDate.getTime() + "\n"
+ ts.getTime() + "\n"
+ time.getTime() + "\n"
+ c.getTime());
System.out.println("==============================");
Date date = new Date();
String format = new SimpleDateFormat("yyyy/MM/dd").format(date);
System.out.println(format);
date = new SimpleDateFormat("yyyy/MM/dd").parse(format);
System.out.println(date);
c.setTime(date);
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println("==============================");
//取当月的最后一天
c = Calendar.getInstance();
int maxDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
format = new SimpleDateFormat("yyyy/MM/" + maxDay).format(c.getTime());
System.out.println("当月的最后一天 -> " + format);
}
private static int getAge(int year, int month, int day){
Calendar birthDate = new GregorianCalendar(year, month, day);
Calendar today = Calendar.getInstance();
int age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR);
//若还没过生日,则age-1
birthDate.add(Calendar.YEAR, age);
if(today.before(birthDate)){
age -= 1;
}
return age;
}
private static boolean isLeapYear(int year){
GregorianCalendar cal = new GregorianCalendar();
return cal.isLeapYear(year);
}
}