对于某些问题在写程序中非常需要输出当前的时间,或者是对日期时间的一些操作。尤其是在做一些项目或者大程序中,这一点尤为重要。对日期和时间的操作,比如说我想知道2018年5月5日是那一年的第几天或者是周几的类似问题,在现实中我们通常是先查日历,在进行计算。我们在计算机中该如何做呢? 众所周知java中有大量类库可供我们使用,这些类库使用好了对我们的帮助非常大。今天来看Date与Calendar类
Date类
1.得到当前时间,对于Date类的对象它返回的按国际标准输出的当前时间。
输出样例:Sat May 25 17:41:56 CST 2019
public void test2(){
Date d=new Date();
System.out.println(d);
}
2.得到Date的毫秒数:getTime()方法,调用这个方法你会得到一个Date的毫秒数。例如:1558779039587
public void test3(){
Date d=new Date();
System.out.println(d.getTime());
}
3.得到当前时间的毫秒数:System.currentTimeMillis()。这个方法是用标准设备输出当前时间的毫秒数等效于date。getTime()方法。
public void test4(){
System.out.println(System.currentTimeMillis());
}
4.计算代码的性能,代码性能及代码运行的速度,这个东西跟复杂都有关这里不解释。我用一个循环程序,我们测试这个程序的性能。
private void circle1(){
for(int i=0;i<100000;i++){
System.out.println(i);
}
}
@Test
public void test5(){
long start=System.currentTimeMillis();
circle1();
long end=System.currentTimeMillis();
System.out.println(end-start);
}
5.Date类的格式化输出;直接看代码
public void test6() throws ParseException {
Date d = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh:ss ms");
//把日期时间格式化成字符串
String cur = df.format(d);
//把符合模式串的转换成Date对象
Date dd = df.parse("2019年05月19日 08:23 5623");
System.out.println(dd);
System.out.println(cur);
}
Calendar类
1.首先 Calendar类是一个抽象类,就是我们不能通过他来创建对象。我们必须通过它的子类来实现功能。所以我们在创建 Calendar类对象时必须先private Calendar calendar=null;来初始化。
2.从日历类(Calendar类)获取当前时间Date对象,输出的仍是当前时间与Date类相同
public void test2(){
System.out.println(calendar.getTime());//date
}
3.日历类的基本用法;
public void test3(){
//取年
int year=calendar.get(Calendar.YEAR);
//取月
int month=calendar.get(Calendar.MONTH);
//取日
int day=calendar.get(Calendar.DAY_OF_MONTH);
//取时
int hour=calendar.get(Calendar.HOUR);
//取周几
int weekdday=calendar.get(Calendar.DAY_OF_WEEK);
//取分钟
int minute=calendar.get(Calendar.MINUTE);
//取秒
int second=calendar.get(Calendar.SECOND);
System.out.println(year+"年"+month+"月"+day+"日,星期"+weekdday);
}
解释一下这个在输出周几和月份时会少一个,因为外国日历时从0-11月开始算的从周天开始新的一周。
4.例子:计算一年后的今天
public void test4(){
calendar.add(Calendar.YEAR,1);
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH);
int day=calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+(month+1)+"月"+day+"日");
}
5.20000.2月最后一年是星期几 月从0月开始 。星期从周日开始
public void test5(){
calendar.set(2014,3,1);
calendar.add(Calendar.DAY_OF_MONTH,-1);
int day =calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(day-1);
}