java 时间类分析

来源:互联网 发布:知乎回答怎么添加图片 编辑:程序博客网 时间:2024/06/14 01:50
  1. /*@src  http://eric-619.iteye.com/blog/693638 
  2. * 类简介: 
  3. *    1. java.util.Date类: 
  4. *           表示特定的时间点,精确到毫秒,但不支持日期的国际化和分时区显示。 
  5. *    2. java.util.Calendar类: 
  6. *           是抽象类,提供了常规的日期修改功能和国际化支持。 
  7. *    3. java.util.GregorianCalendar类: 
  8. *           是Calendar类的子类,有用的是有个判断闰年的方法。 
  9. *    4. java.util.Locale类: 
  10. *           描述特定的地理、政治、文化上的地区,Locale对象主要封装了“地区”和“语言种类”两方面 
  11. *           的信息,通常用于在国际化和本地化程序中的地区、语言相关的方式显示日期、数字或文本信息等。 
  12. *    5. java.util.TimeZone类: 
  13. *           此抽象类描述时区信息。可以调用静态方法getDefault()一获得该类的实例对象。 
  14. *    6. java.text.DateFormat类: 
  15. *           提供了将日期/时间信息进行格式化处理的功能。 
  16. *    7. java.text.SimpleDateFormat类: 
  17. *           DateFormat类的子类,自定义格式化日期和时间。 
  18. */  
  19.  
  20. import java.util.*;  
  21. import java.util.Date;  
  22. import java.util.Calendar;  
  23. import java.util.GregorianCalendar;  
  24. import java.util.Locale;  
  25. import java.util.TimeZone;  
  26. import java.text.DateFormat;  
  27. import java.text.SimpleDateFormat;  
  28. import java.text.ParseException;  
  29.   
  30. public class TestTime {  
  31.   
  32. public static void main(String [] args){  
  33.    new TestTime().testDate();  
  34.    new TestTime().testCalendar();  
  35.    new TestTime().testLocale();  
  36.    new TestTime().testTimeZone();  
  37.    new TestTime().testGregorianCalendar();  
  38.    new TestTime().testSimpleDateFormat();  
  39. }  
  40.   
  41. // 1.java.util.Date类:表示特定的时间点,精确到毫秒,但不支持日期的国际化和分时区显示。  
  42. public void testDate(){  
  43.    Date d1 = new Date();  
  44.    Date d2 = new Date(2000);  
  45.    System.out.println(d1);  
  46.    System.out.println(d2);  
  47.    System.out.println(d2.compareTo(d1)); //d2大输出1,d2小输出-1,等则输出0  
  48.    System.out.println(d2.equals(d1));  
  49.    System.out.println("----------------------");  
  50. }  
  51.   
  52. // 2. java.util.Calendar类:是抽象类,提供了常规的日期修改功能和国际化支持。  
  53. public void testCalendar(){  
  54.    //调用静态方法getInstance()来获得实例对象,此对象基于当前系统时间  
  55.    Calendar c = Calendar.getInstance();   
  56.    System.out.println(c.get(Calendar.YEAR));  
  57.    System.out.println(c.get(Calendar.MONTH));  
  58.    System.out.println(c.get(Calendar.DATE));  
  59.    System.out.println(c.get(Calendar.HOUR_OF_DAY));  
  60.    System.out.println(c.get(Calendar.MINUTE));  
  61.    System.out.println(c.get(Calendar.SECOND));  
  62.    System.out.println(c.get(Calendar.AM_PM));  
  63.     
  64.    c.add(Calendar.YEAR,10); // 在现在的基础上加了10年  
  65.    System.out.println(c.get(Calendar.YEAR));  
  66.     
  67.    c.set(2009,8,28); //设置基于的时间,其他时间默认当前系统时间  
  68.    System.out.println(c.get(Calendar.YEAR));  
  69.    System.out.println(c.get(Calendar.MONTH));  
  70.    System.out.println(c.get(Calendar.DATE));  
  71.    System.out.println(c.get(Calendar.HOUR_OF_DAY));  
  72.    System.out.println("--------------------------");    
  73. }  
  74.   
  75. // 3. java.util.GregorianCalendar类:是Calendar类的子类,有用的是有个判断闰年的方法。  
  76. public void testGregorianCalendar(){  
  77.    GregorianCalendar gc = new GregorianCalendar();  
  78.    System.out.println(gc.isLeapYear(2008));  
  79.    System.out.println("------------------------");  
  80. }  
  81.   
  82.   
  83. /* 4. java.util.Locale类: 
  84. *   描述特定的地理、政治、文化上的地区,Locale对象主要封装了“地区”和“语言种类”两方面 
  85. *   的信息,通常用于在国际化和本地化程序中的地区、语言相关的方式显示日期、数字或文本信息等 
  86. */  
  87.     public void testLocale(){  
  88.    Locale defaultLocale = Locale.getDefault(); //当前机器所在的国家和地区  
  89.    System.out.println(defaultLocale);  
  90.    System.out.println(defaultLocale.getLanguage());     //英文宿写的语言名  
  91.    System.out.println(defaultLocale.getCountry());       //英文宿写的国家名  
  92.    System.out.println(defaultLocale.getDisplayName());      //语言名(国家名)  
  93.    System.out.println(defaultLocale.getDisplayLanguage()); //语言名  
  94.    System.out.println(defaultLocale.getDisplayCountry()); //国家名  
  95.    System.out.println("--------------------------");  
  96. }  
  97.   
  98.       
  99.     // 5. java.util.TimeZone类: 此抽象类描述时区信息。可以调用静态方法getDefault()一获得该类的实例对象。         
  100. public void testTimeZone(){  
  101.     //String[] ids = TimeZone.getAvailableIDs();  
  102.     TimeZone tz = TimeZone.getDefault();  
  103.     System.out.println(tz);  
  104.     System.out.println(tz.getDisplayName()); //isLeapYear()返回值是布尔类型  
  105.     System.out.println("---------------------------");  
  106. }  
  107.   
  108.   
  109. // 6. java.text.DateFormat类: 提供了将日期/时间信息进行格式化处理的功能。  
  110. public void testDateFormat(){  
  111.    DateFormat df1 = DateFormat.getDateTimeInstance();  
  112.    String str1 = df1.format(new Date());  
  113.    System.out.println(str1);  
  114. }  
  115.   
  116.   
  117. // 7. java.text.SimpleDateFormat类:DateFormat类的子类,自定义格式化日期和时间,是12小时制。  
  118. public void testSimpleDateFormat(){  
  119.    SimpleDateFormat sdf1 = new SimpleDateFormat();  
  120.    String ssf1 = sdf1.format(new Date());  
  121.    System.out.println(ssf1);  
  122.    SimpleDateFormat sdf2 = new SimpleDateFormat("2009/04/29");  
  123.    SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");  
  124.     
  125.    String ssf2 = sdf2.format(new Date());  
  126.    System.out.println(ssf2);  
  127.    try{  
  128.     Date d = sdf2.parse("2009/04/29");  
  129.     System.out.println(d);  
  130.    }catch(ParseException e){  
  131.     e.printStackTrace();  
  132.    }  
  133.          
  134.    System.out.println("----------------------------");  
  135. }  
  136. }  
0 0
原创粉丝点击