来源:脚脚脚脚
blog.csdn.net/wangdajiao
公众号注:文末阅读原文可直达java开发学习网站
1、Calendar的实例化
由于Calendar是抽象类,不可以直接new出一个对象
Calendar calendar=Calendar.getInstance();
**2、Calendar类与Date类的互相转换 **
Calendar转化成Date
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();
Date转成Calendar
Date date=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);
3、计算2016-6-1到2016-6-2两时间相差的小时
public class A {
public static void main(String[] args) {
Date d = new Date(2016,6-1,1);
// 返回的是毫秒
long l = d.getTime();
Date d1 = new Date(2016,6-1,2);
long l1 = d1.getTime();
//得到的结果是24小时
System.out.println((l1-l)/(1000*60*60));
}
}
**4、常用的Calendar方法 **
**注:Calendar中的月份是从0开始的 **
1)格式化输出当前时间:用SimpleDateFormat创建一个带格式的对象,再用对象调用format()方法时传入date值
public class A {
public static void main(String[] args) {
Date d = new Date();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String s = sf.format(d);
System.out.println(s);
}
}
2)计算2016年6月1日时2016年的第几个week
思路:设置Calendar对象的值 为2016-6-1,再调用WEEK_OF_YEAR 方法计算出答案
public class A {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2016);
cal.set(Calendar.MONTH,6-1);
cal.set(Calendar.DAY_OF_MONTH,1);
int week = cal.get(Calendar.WEEK_OF_YEAR);
System.out.println(week);
}
}
3)计算2016年第23周是几月几号
public class A {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
cal.set(Calendar.YEAR, 2016);
cal.set(Calendar.WEEK_OF_YEAR,23);
//Monday是周天
cal.set(Calendar.DAY_OF_WEEK,4);
//Calendar转化成Date
Date d = cal.getTime();
String s = sf.format(d);
System.out.println(s);
}
}
4)字符串转化成时间类型,SimpleDateFormat.parse(String s)
记得要保持SimpleDateFormat和S中的格式一致