Date、DateFormat、SimpleDateFormat、Calendar
package com.Date; import java.util.Date; /* * Date 表示特定的瞬间,精确到毫秒 * JDK1.0开始 * 构造方法(常用的方法,过时的不管): * Date() 分配Date对象并初始化此对象,表示分配它的时间,相当于new Date(System.currentTime()) * Date(long date) 创建并初始化date对象,表示从1970年1月1日00:00:00 GMT开始后的date毫秒的时间 * 常用方法: * boolean after(Date when) 测试此日期是否在指定日期之后 此日期>when,返回true * Boolean before(Date when) * Object clone() 克隆 * long getTime() 返回毫秒值表示 * void setTime(long time) 设置此Date对象 * toString() Date对象转换成 dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)这种格式 * * 从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。 */ public class Study01 { public static void main(String[] args) { /* * year和year2得到的结果是不同的,那是因为Integer的范围所导致的1000*60*60*24*365的值超出了范围 */ Date d=new Date(); long tim=d.getTime(); long year= 1970+(tim/(1000*60*60*24)/365); //long year2= 1970+(tim/(1000*60*60*24*365)); System.out.println(year); d.setTime(1000000); System.out.println(d); //System.out.println(year2); /*System.out.println(1000*60*60*24); System.out.println(1000*60*60*24*365); System.out.println(1471228928/86400000); System.out.println(Integer.MAX_VALUE);*/ } }
package com.DateFormat; import java.text.DateFormat; import java.text.ParseException; import java.util.Date; /* * DateFormat 日期时间格式化子类的抽象类 * 抽象类无法直接使用,所以必须使用它的实例 * *方法: * 获取日期格式器 * static getDateInstance() 获取默认日期格式器 * static getDateInstance(int style,int timeStyle) * getTimeZone() 获取时区 * 解析字符串生成Date * parse(String source) 解析指定字符串,生成一个日期 * 将date转化为String * format(Date date) 将一个Date格式华为日期/时间字符串 * */ public class Study01 { public static void main(String[] args) { String s="2013-07-02"; try { Date d= DateFormat.getDateInstance().parse(s); System.out.println(d); } catch (ParseException e) { e.printStackTrace(); } Date d=new Date(); String s1=DateFormat.getDateInstance().format(d); System.out.println(s1); } }
package com.SimpleDateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class Study01 { public static void main(String[] args) { String pattern="yyyy-MM-dd"; SimpleDateFormat sdf=new SimpleDateFormat(); sdf.applyPattern(pattern); Date d=new Date(); String s=sdf.format(d); System.out.println(s); } } /* * SimpleDateFormat是DateFormat的子类,打破了DateFormat的日期模式只能是几种的特点 * 构造方法: * SimpleDateFormat() 使用默认的模式和默认语言环境构造SimpleDateFormat。一般如果使用的是默认的,就使用Format的getInstance()比较好 * SimpleDateFormat(String pattern)使用自定义的模式和默认语言环境构造SimpleDateFormat * public SimpleDateFormat(String pattern, Locale locale) * * 一些方法: * String toPattern()返回此日期格式的模式字符串 * String toLocalizedPattern() 返回描述次日起的本地化模式字符串 * applyPattern(String pattern) 将给定模式字符串应用于此事件模式 * format和parse都是继承父类的。 */
package com.Calendar; import java.util.Calendar; /* * Calendar: Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法 * * public int get(int field) 返回给定字段的值。日历中的每个日历字段都是静态的成员变量,并且是int类型 */ public class CalendarDemo { public static void main(String[] args) { Calendar rightNow=Calendar.getInstance(); int year=rightNow.get(Calendar.YEAR); int month=rightNow.get(Calendar.MONTH);//month下标是从0开始的 int day=rightNow.get(Calendar.DATE); System.out.println(year+"年"+(month+1)+"月"+day+"日"); } } package com.Calendar; import java.util.Calendar; /* * 获取Calendar对象,使用Calendar.getInstance()。得到的默认时间为今天 * * 设置Calendar当前时间值: * setTime(Date date) * setTimeInMillis(long millis) * set(int field, int value) 将给定的日历字段设置为给定值。 * set(int year, int month, int date) 设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。 * add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量 正表示增,负表示减 * 返回Calendar的Date表示 * Date getTime() */ public class CaldndarDemo2 { public static void main(String[] args) { Calendar c=Calendar.getInstance(); c.set(2013, 3, 7); int year=c.get(Calendar.YEAR); int month=c.get(Calendar.MONTH);//month下标是从0开始的 int day=c.get(Calendar.DATE); System.out.println(year+"年"+(month+1)+"月"+day+"日"); c.add(Calendar.YEAR, 5); c.add(Calendar.DAY_OF_MONTH,-3); year=c.get(Calendar.YEAR); month=c.get(Calendar.MONTH);//month下标是从0开始的 day=c.get(Calendar.DATE); System.out.println(year+"年"+(month+1)+"月"+day+"日"); } }