Calendar c3 = new GregorianCalendar(2017, 3, 10, 14, 10, 5);
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateAndCalendarStudy { public static void main(String[] args) { // TODO Auto-generated method stub // 直接用Date获取当前系统时间 Date date = new Date(); // Date中的许多方法,例如获取某年、某月、某日等,以及设置某年、某月、某日等都不再建议使用, // 建议使用calendar的各种方法替代,因此便不做记录 // 获取指定日期的毫秒数,常用来比较两个日期的大小。 date.getTime(); // 使用Calendar获取当前系统时间,需要获取Calendar对象后转换成Date输出 Calendar calendar = Calendar.getInstance(); // 这个方法相当于Date中的getTime,获取当前时间的毫秒数 calendar.getTimeInMillis(); // 获取指定日期所在周的第一天的日期,默认的一周的第一天是周日 calendar.getFirstDayOfWeek(); // 返回当前calendar日期所在的年,如2017 System.out.println(calendar.get(1)); // Calendar转Date,输出结果:Fri Mar 10 13:38:45 CST 2017 Date date2 = calendar.getTime(); System.out.println(date2); // Calendar设置年、月、日,输出结果:Mon Apr 10 13:41:44 CST 2017 // 相关常用重载方法:calendar.set(year, month, date, hourOfDay, minute); // calendar.set(year, month, date, hourOfDay, minute, second);参数均为int calendar.set(2017, 3, 10); System.out.println(calendar.getTime()); // 使用Calendar设置年,输出结果:Sun Apr 10 13:41:44 CST 2016 calendar.set(Calendar.YEAR, 2016); System.out.println(calendar.getTime()); // 使用Calendar和数字设置月,注意月份从0开始,代表1月,输出结果:Sun Jan 10 13:41:44 CST 2016 calendar.set(Calendar.MONTH, 0); System.out.println(calendar.getTime()); // 使用Calendar和自带常量设置月,注意月份从0开始,代表1月,输出结果:Thu Mar 10 13:41:44 CST 2016 calendar.set(Calendar.MONTH, Calendar.MARCH); System.out.println(calendar.getTime()); // 使用Calendar和数字设置日,输出结果:Thu Mar 10 13:41:44 CST 2016 // calendar.set(Calendar.DAY_OF_MONTH, 10)一个月中的第几天,同Calendar.DATE; calendar.set(Calendar.DATE, 10); System.out.println(calendar.getTime()); //一周中的第几天,对应星期几,第一天为星期日,于此类推 calendar.set(Calendar.DAY_OF_WEEK,6); System.out.println(calendar.getTime()); // 设置小时,12小时制下的小时数,中午和午夜表示为0 calendar.set(Calendar.HOUR, 9); System.out.println(calendar.getTime()); // 设置小时,24小时制下的小时数,午夜表示为0 calendar.set(Calendar.HOUR_OF_DAY, 14); System.out.println(calendar.getTime()); //上下午标识,上午返回Calendar.AM=0,下午返回Calendar.PM=1 calendar.set(Calendar.AM_PM, 0); System.out.println(calendar.getTime()); // 根据毫秒数设置Calendar时间 calendar.setTimeInMillis(0); // Date转String,输出结果:2016-05-03 09:25:29 String forDate = dateToString(new Date()); System.out.println(forDate); // String转Date,输出结果:Thu Mar 10 13:43:11 CST 2016 Date strDate = stringToDate("2016-03-10 13:43:11"); System.out.println(strDate); // Date转Calendar,输出结果:2016 Calendar calendar2 = dateToCalendar(strDate); System.out.println(calendar2.get(1)); } /** * 把指定的date类型时间转换为指定格式的字符串 * @param date * @return */ private static String dateToString(Date date) { String str = "yyyy-MM-dd hh:mm:ss"; SimpleDateFormat format = new SimpleDateFormat(str); String dateFormat = format.format(date); return dateFormat; } /** * 把指定的日期格式的字符串转换成Date类型 * @param string * @return */ private static Date stringToDate(String string) { String str = "yyyy-MM-dd hh:mm:ss"; SimpleDateFormat format = new SimpleDateFormat(str); Date date = new Date(); try { date = format.parse(string); } catch (Exception e) { e.getStackTrace(); } return date; } /** * 把指定的date类型日期转换成Calendar类型 * @param date * @return */ private static Calendar dateToCalendar(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar; } }
