标签:
在Java中可以使用Date类和Calendar类来处理日期
但是Date类很多方法都过时了,推荐使用Canlendar类来处理日期,并对日期的格式化做了介绍。下面的部分将会逐一介绍
Java提供了Date类来处理日期、时间,Date类既包含日期,也包含时间。Date类从JDK1.0版本就开始存在,存在时间久远,提供的6个构造器中,已有4个建议放弃使用,目前使用的为:
public class DateTest { public static void main(String[] args) throws InterruptedException { long start = System.currentTimeMillis(); Date d1 = new Date(start); Thread.sleep(3000); long end = System.currentTimeMillis(); Date d2 = new Date(end); System.out.println(d1.before(d2)); System.out.println(d1.after(d2)); System.out.println(d1.getTime()); System.out.println(d1.equals(d2)); } }
Calendar是一个抽象类,用于表示日历。因为Date类在设计上存在一些缺陷,所以Java提供Calendar类来更好的处理日期和时间。
Calendar类不能直接创建,可以通过类方法来创建一个Calendar的子类,Java本身提供了GregorianCalendar子类,通过getInstance()方法返回默认时区和语言环境获得一个日历。返回的实例就是Java提供的默认子类。
Calendar类提供的常用方法:
public class CalendarTest { public static void main(String[] args) { //通过类方法获得实例 Calendar calendar = Calendar.getInstance(); System.out.println(calendar.get(Calendar.YEAR)); // calendar.add(Calendar.DATE, 1); // System.out.println(calendar.get(calendar.DATE)); //roll的用法 (当超过范围不会向上进位) calendar.roll(Calendar.MONTH,10 ); System.out.println(calendar.get(calendar.YEAR)); System.out.println(calendar.get(calendar.MONTH)); //获取该字段可能拥有的最大值 System.out.println(calendar.getMaximum(calendar.MONTH)); //自己设置时间 calendar.set(2016, 06, 8); System.out.println(calendar.get(calendar.YEAR)); //返回设置后的时间 //Date和Calendar类之间的转换 Date date = calendar.getTime(); //使用SimpleDateFormat格式化输出时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh点mm分ss秒"); System.out.println(sdf.format(date)); } }
DateFormat是一个抽象类,它也提供了几个工厂方法用于获取DateFormat对象。返回的都是DateFormat对象的子类实例,是同一个类型的实例。
虽然返回的都是同一个对象类型的实例,但是根据不同的工厂方法,返回的对象在格式化时间对象时,处理不同部分的信息。
public static void main(String[] args) throws Exception{ Date date = new Date(); //默认为中国常用格式 DateFormat format = DateFormat.getInstance(); System.out.println(format.format(date)); //返回日期、时间格式器国际统一标准 format = DateFormat.getDateTimeInstance(); System.out.println(format.format(date)); //返回日期格式器,同时指定格式类型,为简洁型,指定要显示哪个国家的类型 format = DateFormat.getDateInstance(DateFormat.SHORT, Locale.CHINA); System.out.println(format.format(date)); //返回日期格式器,同时指定格式类型,为中等型,指定要显示哪个国家的类型 format = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.CHINA); System.out.println(format.format(date)); //返回日期格式器,同时指定格式类型,为完整型,指定要显示哪个国家的类型 format = DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA); System.out.println(format.format(date)); //返回日期格式器,同时指定格式类型,为复杂型,指定要显示哪个国家的类型 format = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA); System.out.println(format.format(date)); }
SimpleDateFormat是DateFormat的子类,是一种更简单的日期格式,以为我们指定的格式对日期进行格式化。
注意使用的时候在new出对象的时候指定想要看到的日期格式即可。(具体代码上面例子有)
标签:
原文地址:http://www.cnblogs.com/nb44c/p/4560161.html