package 常用类.Date; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /**月份从0-11的整数表示,0是一月,11是12月 * 日期对象--》毫秒值 getTime方法: * 原因:可以通过毫秒值来进行日期运算 * 毫秒值--》日期对象 setTime方法或者构造方法new Date(毫秒值); * 原因:可以对年月日等字段的操作 * Date实现了comparable接口 * 格式化:简单说把物体进行重新划分,改变物体内部空间结构 * abstract DateFormat :日期格式类 * 工厂:生产对象的地方*/ public class dateDemo { public static void main(String[] args) throws ParseException { //demo_1(); demo_2(); demo_3(); test_1(); } public static void test_1() throws ParseException { String str_day_1="2016-5-1"; String str_day_2="2017-4-23"; DateFormat dateFormat = DateFormat.getDateInstance(); Date date1=dateFormat.parse(str_day_1); Date date2=dateFormat.parse(str_day_2); Long l1=date1.getTime(); Long l2=date2.getTime(); //日期相减一定要确保结果是正数 System.out.println(Math.abs((l1-l2))/1000/60/60/24+"天"); } /**将日期格式的字符串---》日期对象 * @throws ParseException */ public static void demo_3() throws ParseException { String str_day="2017-4-23"; String str_day_1="2017---5-1"; DateFormat dateFormat = DateFormat.getDateInstance(); DateFormat d1 = new SimpleDateFormat("yyyy---MM-dd"); Date date1=dateFormat.parse(str_day); System.out.println(date1); Date date2=d1.parse(str_day_1); System.out.println(date2); } /**将日期对象---》日期格式字符串 ;对日期对象进行格式化 使用DateFormate类中的format方法*/ public static void demo_2() { Date date = new Date(); //获取日期格式对象的方法,具备着默认风格。 //DateFormat dateFormat = DateFormat.getDateInstance(); DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL); dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); String str_day = dateFormat.format(date); System.out.println(str_day); //自定义风格日期 是由SimpleDateFormat类完成的 dateFormat= new SimpleDateFormat("yyyy--MM--dd"); String str_day_1=dateFormat.format(date); System.out.println(str_day_1); } private static void demo_1() { Long time = System.currentTimeMillis(); System.out.println(time); Date date1 = new Date(); System.out.println(date1); Date date2 = new Date(1492942746472L);//long型 System.out.println(date2); } }
package 常用类.Calendar; import java.util.Calendar; import java.util.Date; /** * abstract Calendar日历 类中提供返回对象的方法 getInstance(); */ public class CalendarDemo { public static void main(String[] args) { Calendar c = Calendar.getInstance(); // 设置时间 //c.set(Calendar.YEAR, 2019); //c.set(2017, 3, 23); // 时间偏移 //c.add(Calendar.DAY_OF_MONTH, 9); //c.add(Calendar.YEAR, -5); //打印当前时间 demo_1(c); //计算每年2月有多少天 int year=2017; int day=demo_2(c,year); System.out.println(year+"年二月有"+day+"天"); //获取昨天的这个时间 //demo_3(c); // Date date = c.getTime(); // System.out.println(date); } public static void demo_3(Calendar c) { //c.get(Calendar.DAY_OF_MONTH); c.add(Calendar.DAY_OF_MONTH, -1); demo_1(c); } private static int demo_2(Calendar c,int year) { c.set(year, 2, 1, 0, 0, 0); c.add(Calendar.DAY_OF_MONTH,-1); int day =c.get(Calendar.DAY_OF_MONTH); return day; } public static void demo_1(Calendar c) { // 获取当前时间 int year = c.get(Calendar.YEAR); int day = c.get(Calendar.DAY_OF_MONTH); int month = c.get(Calendar.MONTH) + 1;// 月份从0开始计数所以要加1 int week = c.get(Calendar.DAY_OF_WEEK); int hour=c.get(Calendar.HOUR_OF_DAY); System.out.println(year + "年" + month + "月" + day + "日"+hour+"点"+ getWeek(week)); } /**输出日期一定要注意1代表周日 7代表周六 为了观看方便可以通过下面这个方法实现字符串输出对应星期*/ private static String getWeek(int week) { String[] arr = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; return arr[week]; } }