Date类两种构造函数、getTime方法
Calendar类是一个抽象类,无法直接实例化,只能通过getInstance方法获得当前时间的实例。
Calendar类的方法:get、set、add
Calendar类的模式:lenient和non-lenient,lenient模式会自动进位,在某些情况下非常好用,比如计算某个日期后10天的日期,不用考虑日超过范围的问题。
Date类的两种构造函数:Date表示特定的瞬间,精确到毫秒。
1、public Date()——第一个构造函数使用当前日期和时间来初始化对象
代码;获取当前日期时间
import java.util.Date;
public class date {
@Override
public String toString() {
return "dow mon dd hh:mm:ss zzz yyyy";
}
public static void main(String[] args) {
Date date = new Date();
System.out.println(date.toString());
}
}
结果:
心得体会:
把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
2、Date(long millisec)-第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
语法:
public Date(long date)——根据给定的毫秒值创建日期对象。
代码:
import java.util.Date;
public class date1 {
public static void main(String[] args) {
long time = System.currentTimeMillis();
Date date = new Date(time);
System.out.println(date);
}
}
结果:
getTime方法:日期转毫秒值
语法:
public long getTime()——日期转毫秒值
通过getTime方法可以将一个日期类型转换为long类型的毫秒值
返回值:
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数
代码:
import java.util.Date;
public class getTime {
public static void main(String[] args) {
Date date = new Date();
System.out.println("从1970-1-1到今天所过的秒数:"+date.getTime());
}
}
结果:
心得体会:
可以计算到今天的所有毫秒数。
setTime 方法:毫秒值转日期
语法:
public void setTime(long time)——毫秒值转日期
返回值:
用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期
代码:
import java.util.Date;
public class setTime {
public static void main(String[] args) {
//long time = System.currentTimeMillis();//确定今天的时间
Date date = new Date(100000000);
//date.setTime(time);
System.out.println(date);
}
}
结果:
before(Date when)方法:
语法:
public boolean before(Date when)——测试此日期是否在指定日期之前,当且仅当此Date对象表示的瞬间比when表示的瞬间早,才返回true;否则返回false。
代码:
import java.util.Date;
//测试此日期是否在指定日期之前
public class before {
public static void main(String[] args) {
Date date1 = new Date(1000);
Date date2 = new Date(2000);
System.out.println(date1.before(date2));
}
}
结果:
after(Date when)方法:
语法:
public boolean after(Date when)——测试此日期是否在指定日期之后,当且仅当此Date对象表示的瞬间比when表示的瞬间晚,才返回true;否则返回false。
代码:
import java.util.Date;
//测试此日期是否在指定日期之后
public class after {
public static void main(String[] args) {
Date date1 = new Date(1000);
Date date2 = new Date(2000);
System.out.println(date1.after(date2));
}
}
结果:
compareTo(Date when)方法:
语法:
public int compareTo(Date anotherDate)——比较两个日期的顺序。
如果参数Date等于此Date,则返回值0;如果此Date在Date参数之前,则返回小于0的值;如果此Date在Date参数之后,则返回大于0的值。
代码;
import java.util.Date;
//比较两个日期的顺序
public class compareTo {
public static void main(String[] args) {
Date date1 = new Date(1000);
Date date2 = new Date(2000);
System.out.println(date1.compareTo(date2));
}
}
结果:
Calendar类的方法get
代码:
import java.util.Calendar;
import java.util.Date;
public class getTime {
public static void main(String[] args) {
long TimeNow = System.currentTimeMillis();
System.out.println("此时时间:"+TimeNow);
Date date = new Date(TimeNow);
System.out.println("转化后的时间:"+date);
Calendar c = Calendar.getInstance();
System.out.println("获得此时时间:"+c.getTime());
}
}
结果:
Calendar类的方法set
语法:
public final void set(int year,int month,int date);
参数:
year:年 month:月 date:日
代码:
import java.util.Calendar;
public class setTime {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.set(2002,5,20);//把c的年月日设置为2002,5,20
System.out.println(c.getTime());
}
}
结果:
Calendar类的方法add
根据日历的规则,为给定的日历字段添加或减去指定的时间量
语法:
代码:
import java.util.Calendar;
public class add {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE,1);//把c对象的日期加上1,也就是1天后的日期,其他的数值会被重新计算
System.out.println(c.getTime());
c.add(Calendar.DATE,-1);//把c对象的日期加上-1,也就是1天前的日期,其他的数值会被重新计算
System.out.println(c.getTime());
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;//返回值时从0-11,所以要+1
int date = c.get(Calendar.DATE);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
int day = c.get(Calendar.DAY_OF_WEEK);
System.out.printf("%d年,",year);
System.out.printf("%d月,",month);
System.out.printf("%d日,",date);
System.out.printf("%d时,",hour);
System.out.printf("%d分,",minute);
System.out.printf("%d秒,",second);
System.out.printf("星期%d。",day);//1代表星期日、2代表星期1、3代表星期二,以此类推)
}
}
结果: