java常用类解析十:Date类和Calendar类示例

来源:互联网 发布:贾静雯直播软件 编辑:程序博客网 时间:2024/04/29 20:06

1、Date类实例:格式化输出当前日期

package demo.others;import java.text.Format;import java.text.SimpleDateFormat;import java.util.Date;public class DateDemo {public static void main(String[] args) {Date d = new Date();//输出格式:dow mon dd hh:mm:ss zzz yyyy//表示      :星期  月    日期  时   分   秒    时区 年System.out.println(d);//Format 是一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类。Format format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");System.out.println(format.format(d));}}

 

2、Calendar及GregorianCalendar类实例:获取当前日期、打印当前月份日历、计算两个日期之间相差的天数

 

package demo.others;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;/* * 日历类简单例子,Calendar类不稳定,有延时性和容错性 */public class CalendarDemo {public static void main(String[] args) {simpleDemo();showCalendar();numberOfDays();}// Calendar常用方法示例public static void simpleDemo() {//当前日期Calendar c = new GregorianCalendar();//c.setTime(new Date());StringBuilder str = new StringBuilder();//获取当前日期的信息str.append("year:" + c.get(Calendar.YEAR));str.append("   month:" + (c.get(Calendar.MONTH) + 1));str.append("   day:" + c.get(Calendar.DAY_OF_MONTH));str.append("   week:" + (c.get(Calendar.DAY_OF_WEEK) - 1));str.append("   hour:" + c.get(Calendar.HOUR_OF_DAY));str.append("   minute:" + c.get(Calendar.MINUTE));str.append("   second:" + c.get(Calendar.SECOND));System.out.println(str);// 转换成Date对象Date d = Calendar.getInstance().getTime();System.out.println(d);}// 输出当前月的日历public static void showCalendar() {// 获得当前时间Calendar c = Calendar.getInstance();// 设置代表的日期为1号c.set(Calendar.DATE, 1);// 获得1号是星期几int start = c.get(Calendar.DAY_OF_WEEK);// 获得当前月的最大日期数int maxDay = c.getActualMaximum(Calendar.DATE);// 输出标题System.out.println("星期日 星期一 星期二 星期三 星期四 星期五   星期六");// 输出开始的空格for (int i = 1; i < start; i++) {System.out.print("      ");}// 输出该月中的所有日期for (int i = 1; i <= maxDay; i++) {// 输出日期数字System.out.print(" " + i);// 输出分隔空格System.out.print("   ");if (i < 10) {System.out.print(' ');}// 判断是否换行if ((start + i - 1) % 7 == 0) {System.out.println();}}// 换行System.out.println();}// 计算两个日期之间相差的天数public static void numberOfDays() {// 设置两个日期// 日期:2009年3月11号Calendar c1 = Calendar.getInstance();c1.set(2009, 3 - 1, 11);// 日期:2010年4月1号Calendar c2 = Calendar.getInstance();c2.set(2010, 4 - 1, 1);// 转换为相对时间long t1 = c1.getTimeInMillis();long t2 = c2.getTimeInMillis();// 计算天数long days = (t2 - t1) / (24 * 60 * 60 * 1000);System.out.println(days);}}