获得现在的时刻数值:
long now = System.currentTimeMillis();
Date d = new Date (2000);
System.out.println(d.getTime());
输出:毫秒数为2000时刻的日期(考虑时区)
比较两个时刻先后:
date1.after(date2);
date1.before(date2);
返回值为Boolean类型
遇到日期处理,使用calendar类
DateFormat(抽象类)和SimpleDateFormat(抽象类的子实现类)
把时间对象按照“字符串指定格式”转换成相应的字符串:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String str = df.format(1000000000);
System.out.println(str);
输出为:1970-01-12 09:46:40
注意:表示月份的M需要大写,中间连接符可以任意,yyyy年MM月dd日 等
输出类型为string类
把字符串按照“字符串指定格式”转换成相应的时间对象
Date date = df.parse("2019-9-18 14:49:59");
System.out.println(date);
输出为:Wed Sep 18 14:49:59 CST 2019
注意:格式标准要严格一致,输出类型为date类
需要throw异常
随意新建另一个“指定格式”
DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
其他的格式字符:如利用D,获得本时间对象是所处年份的第几天,利用M……
DateFormat df3 = new SimpleDateFormat("D");
String str3 = df3.format(new Date());
System.out.println(str3);
日期(calendar)类
int year = c1.get(Calendar.YEAR);//获得日期中的基本数据
int month = c1.get(Calendar.MONTH);//0表示一月……11表示12月
int day = c1.get(Calendar.DAY_OF_MONTH);
//设置日期相关元素
Calendar c2 = new GregorianCalendar();
c2.set(Calendar.YEAR, 1931);
printCalendar(c2);
//时间的相加
c2.add(Calendar.YEAR, -91);
printCalendar(c2);
//日期对象和时间对象的互相转化
Date d4 = c2.getTime();//日期对象转化为时间对象
Calendar c3 = new GregorianCalendar();
c3.setTime(new Date());//把当前时间对象转化为日期对象
附:输出指定格式日期方法
public static void printCalendar(Calendar a) {
int year = a.get(Calendar.YEAR);
int month = a.get(Calendar.MONTH);
int day = a.get(Calendar.DAY_OF_MONTH);
int hour = a.get(Calendar.HOUR);
int minute = a.get(Calendar.MINUTE);
int second = a.get(Calendar.SECOND);
System.out.printf("%d年%d月%d日 %d:%d:%d",year,month,day,hour,minute,second);
}