Date
java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象:
主要方法:
public class DateDemo {
public static void main(String[] args) {
// 初始化 Date 对象
Date d = new Date();
// 使用 toString() 函数显示日期时间
System.out.println(d.toString());
Date d1=new Date(1998,12,12);//自行设置 已被舍弃 现有Calendar类可以设置
System.out.println(d1.toString());
Date d2=new Date(1000*60*60*24);//从 1970 年 1 月 1 日起的毫秒数 经过一天
System.out.println(d2.toString());
}
}
SimpleDateFormat
SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行
package Demo;
import java.text.SimpleDateFormat;
import java.util.*;
public class DateDemo {
public static void main(String[] args) {
// 初始化 Date 对象
Date d = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println("当前时间为: " + ft.format(d));
}
}
不同格式举例
package Demo;
import java.text.SimpleDateFormat;
import java.util.*;
public class DateDemo {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
System.out.println(sdf.format(date));
SimpleDateFormat sdf1=new SimpleDateFormat("EEE,MMM d, ''yy ");
System.out.println(sdf1.format(date));
System.out.println(new SimpleDateFormat("h:mm a").format(date));
System.out.println(new SimpleDateFormat("hh 'o' 'clock' a, zzzz").format(date));
System.out.println(new SimpleDateFormat("K:mm a, z").format(date));
System.out.println(new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa").format(date));
System.out.println(new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z").format(date));
System.out.println(new SimpleDateFormat("yyMMddHHmmssZ").format(date));
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(date));
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX").format(date));
System.out.println(new SimpleDateFormat("YYYY-'W'ww-u").format(date));
}
}
sleep
sleep()使当前线程进入停滞状态(阻塞当前线程),让出CPU的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会。
import java.util.*;
public class DateDemo {
public static void main(String[] args) throws InterruptedException {
System.out.println(new Date());
Thread.sleep(1000*5);//休眠五秒
System.out.println(new Date());
}
}
Calendar
Calendar类可以自定义日期,是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。
Calendar c = Calendar.getInstance();//默认是当前日期
package Demo;
import java.util.*;
public class DateDemo {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();//获得当前时间
System.out.println(c.getTime());
int y=c.get(Calendar.YEAR);//获得年
int m=c.get(Calendar.MONTH);//月 这个月与实际的月差一月实际上已经12月 格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0;最后一个月取决于一年中的月份数。
int d=c.get(Calendar.DATE);//日
int h=c.get(Calendar.HOUR_OF_DAY);//小时
int min = c.get(Calendar.MINUTE);//分钟
int sec=c.get(Calendar.SECOND);//秒
int day=c.get(Calendar.DAY_OF_WEEK);//星期几
System.out.println(y+"年"+m+"月"+d+"日"+h+"时"+min+"分"+sec +"秒");
System.out.println("显示今天星期"+day);
System.out.println("实际今天星期"+(day-1));
Calendar c1=Calendar.getInstance();
c1.set(1998,11,11,8,0,0);//设置时间 月与设置的月差一月
System.out.println("原时间"+c1.getTime());
c1.add(Calendar.DATE,10);//c1对象加上10天
System.out.println("10天后"+c1.getTime());
c1.add(Calendar.DATE,-20);//c1对象减去20天,之前加上10天,也就是原来的日期减去10天
System.out.println("10天前"+c1.getTime());
int dayLag=(int) ((c.getTimeInMillis()- c1.getTimeInMillis())/1000/60/60/24);//long型
System.out.println("1998.11.1到现在经过了"+dayLag+"天");
c.setMinimalDaysInFirstWeek(7);//一周七天
System.out.println("现在明确的时间显示:"+y+"年"+(m+1)+"月"+d+"日"+h+"时"+min+"分"+sec +"秒");
}
}
GregorianCalendar
Calendar类实现了公历日历,Calendar 的getInstance()方法返回一个默认用当前的语言环境和时区初始化的GregorianCalendar对象。GregorianCalendar定义了两个字段:AD和BC。这是代表公历定义的两个时代。
构造方法:
import java.util.*;
public class DateDemo {
public static void main(String[] args) {
String months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
int year;
// 默认为本地时间和时区 使用当前时间和日期
GregorianCalendar g = new GregorianCalendar();
// 显示当前时间和日期的信息
System.out.print("Date: ");
System.out.print(months[g.get(Calendar.MONTH)]);//从0开始 0就是一月
System.out.print(" " + g.get(Calendar.DATE) + " ");
System.out.println(year = g.get(Calendar.YEAR));
System.out.print("Time: ");
System.out.print(g.get(Calendar.HOUR) + ":");
System.out.print(g.get(Calendar.MINUTE) + ":");
System.out.println(g.get(Calendar.SECOND));
// 测试当前年份是否为闰年
if(g.isLeapYear(year)) {
System.out.println("当前年份是闰年");
}
else {
System.out.println("当前年份不是闰年");
}
}
}