JAvaのDateとDateFormat

4641 ワード

Date、DateFormatの使用
システムの時間を取得するには、System.currentTimeMillis()メソッドを使用します.たとえば、次のようにします.
  • DateDemo.java
  • package onlyfun.caterpillar;
    
    public class DateDemo {
        public static void main(String[] args) {
            System.out.println(System.currentTimeMillis());
        }
    } 

    実行結果には、1970年1月1日からシステム取得までの時間が経過したミリ秒数、例えば1115346430703という数字が表示されますが、このような数字の意味が何なのかを正確に理解する人はいません.Dateカテゴリを使用して、この数字をより意味のあるものにすることができます.たとえば、次のようにします.
  • DateDemo.java
  • package onlyfun.caterpillar;
    
    import java.util.Date;
    
    public class DateDemo {
        public static void main(String[] args) {
            Date date = new Date();
            
            System.out.println(date.toString());
            System.out.println(date.getTime());
        }
    } 

    実行結果は次のとおりです.
    Fri May 06 10:31:13 GMT+08:00 20051115346673531
    Dateオブジェクトを生成する場合、実際にはSystem.currentTimeMillis()を使用してシステム時間を取得し、toString()メソッドを使用すると、取得した1970年1月1日から現在までのミリ秒数をdow mon dd hh:mm:ss zzz yyyyのフォーマットに変更します.DateのgetTime()メソッドを使用するとミリ秒数を取得できます.日付時刻をフォーマットする場合は、DateFormatを使用してフォーマットできます.まず、サブクラスSimpleDateFormatの使用方法を見てみましょう.
  • DateDemo.java
  • package onlyfun.caterpillar;
    
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
     
    public class DateDemo {
        public static void main(String[] args) {
            Date date = new Date();
    
            DateFormat dateFormat = 
                new SimpleDateFormat("EE-MM-dd-yyyy");
            
            System.out.println(dateFormat.format(date));
        }
    } 

    実行結果:
    金曜日-05-06-2005
    DateFormatはパソコン上のエリアに応じて表示時間フォーマットを設定し、EEは曜日、MMは月、ddは日付を表し、yyyyは西元で、各文字の設定にはそれぞれ意味があり、SimpleDateFormatのAPIを参照して各文字の設定の意味を説明することができます.DateFormatで指定したフォーマットから直接DateFormatのインスタンスを生成することもできます.たとえば、次のようになります.
  • DateDemo.java
  • package onlyfun.caterpillar;
    
    import java.text.DateFormat;
    import java.util.Date;
    
    public class DateDemo {
        public static void main(String[] args) {
            Date date = new Date(); 
    
            DateFormat shortFormat = 
                DateFormat.getDateTimeInstance( 
                    DateFormat.SHORT, DateFormat.SHORT); 
    
            DateFormat mediumFormat = 
                DateFormat.getDateTimeInstance( 
                    DateFormat.MEDIUM, DateFormat.MEDIUM); 
    
            DateFormat longFormat = 
                DateFormat.getDateTimeInstance( 
                    DateFormat.LONG, DateFormat.LONG); 
    
            DateFormat fullFormat = 
                DateFormat.getDateTimeInstance( 
                    DateFormat.FULL, DateFormat.FULL); 
    
            System.out.println(shortFormat.format(date)); 
            System.out.println(mediumFormat.format(date)); 
            System.out.println(longFormat.format(date)); 
            System.out.println(fullFormat.format(date)); 
        }
    } 

    getDateTimeInstance()を使用してDateFormatインスタンスを取得する場合、指定できるパラメータは日付フォーマットと時間フォーマットであり、上記で指定したフォーマットはメッセージの詳細度によって区別され、実行結果は以下の通りです.
    2005/5/6午前10:452005/5/6午前10:45:252005年5月6日午前10時45分25秒2005年5月6日金曜日午前10時45分25秒GMT+08:00
    また、getDateInstance()を使用してDateFormatインスタンスを取得し、日付の領域表示方法を指定することもできます.たとえば、次のようにします.
  • DateDemo.java
  • package onlyfun.caterpillar;
    
    import java.text.DateFormat;
    import java.util.Date;
    import java.util.Locale;
    
    public class DateDemo {
        public static void main(String[] args) {
            Date date = new Date(); 
    
            Locale locale = new Locale("en", "US");
            DateFormat shortFormat = 
                DateFormat.getDateInstance( 
                    DateFormat.SHORT, locale); 
    
            DateFormat mediumFormat = 
                DateFormat.getDateInstance( 
                    DateFormat.MEDIUM, locale); 
    
            DateFormat longFormat = 
                DateFormat.getDateInstance( 
                    DateFormat.LONG, locale); 
    
            DateFormat fullFormat = 
                DateFormat.getDateInstance( 
                    DateFormat.FULL, locale); 
    
            System.out.println(shortFormat.format(date)); 
            System.out.println(mediumFormat.format(date)); 
            System.out.println(longFormat.format(date)); 
            System.out.println(fullFormat.format(date)); 
        }
    } 

    こちらはアメリカの時間表示方式を指定しており、実行結果は以下の通りです.
    5/6/05May 6, 2005May 6, 2005Friday, May 6, 2005
    転載先:http:/ /27091497.blog.163.com/blog/static/1180625020080404729285/