Java APIの日付時間シリーズ1 ----- JDK7前の日付と時刻のクラス

  

主なカテゴリは次のとおりです。

Dateクラスは、と呼ばれるこの時間、コンピュータの時間を表現するための責任がある時は、既存のシステムは基本的に現在の時間に夜十二時00分00秒から1970年1月1日の使用時間をミリ秒単位で時間指定されている、より大きな概念であることを示していますエポックのために。明示的にテキストで述べられていない場合、それは1970年の対応する期間に数ミリ秒からミリ秒数を指します。Javaで内部クラスの日は、実際にミリ秒数、Dateオブジェクトなどの外部パフォーマンスです。

カレンダーは、Dateクラスを変更し、他の操作、およびDateクラスから特定の時間などの情報、日付を抽出するために責任があるユーティリティクラスです。

このような特定の文字列形式を読み取るようにDateFormat日付の変換を担当して、指定された形式の文字列に日付オブジェクト、日付またはオブジェクトに変換されます。

1日は時間を表します。値からのミリ秒数が長いエポック保存され、主に内部。大多数の方法が古くなって。

java.util.Date日付フォーマット:これは、を意味し、年、月、日、時間

    パブリック クラス日{
         プライベート 過渡 長いfastTime。
        日付(){ 
            この(のSystem.currentTimeMillis())。
        } 
        日(長い日付){ 
            fastTime = 日付。
        } 
        // ... 
    }

(アジア等24 /上海)2タイムゾーンのタイムゾーン

//はデフォルトのタイムゾーンを取得 
はTimeZone.getDefaultを();

3つのロケール国(または地域)(例えばzh_CNに)および言語

// デフォルトの国と言語の取得 
Locale.getDefaultを();

4カレンダーの日付と時刻が操作の主なクラスであり、それは、カレンダー・インスタンスを取得するための静的メソッドの複数を提供する抽象クラスです。

同様の内部カレンダーと日付も時間のミリ秒数を表現するだけでなく、配列(長さ17)を定義し、カレンダーの各フィールドの値を表します。

proteted 長い時間を。
proteted int型のフィールド[];

値は次のフィールドがカレンダーに、これらのフィールドに格納されています

    Calendar.YEAR、
    Calendar.MONTH、
    Calendar.DAY_OF_MONTH、
    Calendar.DAY_OF_WEEKの、
    Calendar.HOUR_OF_DAY、
    Calendar.MINUTE、
    Calendar.SECOND、
    Calendar.MILLISECOND

これらの値はカレンダーのインスタンスによって得ることができる(カレンダーは、時間帯、言語領域に応じて変換されます)。

    // 空のコンストラクタは、それが電流を得るでしょう。Calendar.getInstance( "アジア/上海"、 "zh_CNに") 
    カレンダーカレンダー= Calendar.getInstance();
     int型デイ= Calendar.get(Calendar.DAY_OF_MONTH)。

カレンダーは、(負の数は減少を示す)フィールドに基づいて増加する時間を短縮することをサポートしています。

    。Calendar.getInstance()(Calendar.MONTH、-2)を追加します。

結論として、カレンダーは自動的に、非常に面倒な作業をしたミリ秒とカレンダフィールドのタイムゾーンとロケールに応じて絶対時間を切り替えます。

5たDateFormat(スレッドセーフ)日付と文字列表現の間の変換を提供し、二つの主な方法のフォーマット(日付d)、解析(文字列S)

タイムゾーン、ロケールの日付の文字列表現関連しています。
2に関連付けられていると同時に、フォーマットのスタイルで、1は、日付の書式スタイルで時間のフォーマットスタイルです。
DATAFORMATは抽象メソッドですが、また、ファクトリメソッドを使用してオブジェクトを作成します。

    DateFormat.getTimeInstance(); 
    DateFormat.getDateInstance(); 
    DateFormat.getDateTimeInstance();

GetTimeInstanceここだけの処理時間だけgetDateInstance、日付、処理結果に、getDateTimeInstanceの日付と時刻を処理し、以下の3種類のオブジェクトの

    カレンダーカレンダー= Calendar.getInstance(); 
    
    // 结果是午後九時34分20秒
    DateFormat.getTimeInstance()形式(calendar.getTime())。
    // 结果是2019年2月20日
    DateFormat.getDateInstance()形式(calendar.getTime())。
    // 结果是2019年2月20日21時34分20秒 
    DateFormat.getDateTimeInstance()形式(calendar.getTime())。

DateFormatのは便利が、より正確な制御日付文字列の書式ますが、てSimpleDateFormatを使用する必要があります。

6のSimpleDateFormat(スレッドセーフ)が主な違いで、DateFormatののサブクラスである親クラスである:サブクラスは、日付形式をカスタマイズすることができます。

    文字列のパターン= "E HHのyyyyは日をddは、MM月ミリメートルのSS A" ; 
    SimpleDateFormat SimpleDateFormatは = 新しい新しいてSimpleDateFormat(パターン);
     // 出力は2月20日21:00 2019水曜日44分42秒である 
    OS.print( simpleDateFormat.format(calendar.getTime()))。

英語の文字のパターンがAZは特別な意味を表し、AZ、その他の文字が出力されます。

パターン変数パラメータ 対応する実用的な意義
YYYY 年4 2019
MM 2桁の月 02
DD 日付 20
HH / DD 24時間/ 12時間 21/09
ミリメートル 55
SS 第2 55
E 曜日 結婚した
A 一般的な使用はhhと午前と午後、 PM

SimpleDateFormatのも簡単に文字列の日付に変換することができます。

    文字列str = "2月19日20上、09時間58分33秒111" ; 
    日付DATE = 新しい新しいてSimpleDateFormat( "M SS上DD日HHのYYのミリメートル月SSS" ).parse(STR);
     // 結果2019年2月09時間58分33秒20 
    文字列の結果= 新しい新しいてSimpleDateFormat( "日付YYYY、MM-DD HHさmm ssの時間").format(日付);

7.java.sql.Date継承java.util.Date,只保留了日期

java.sql.DateクラスはJDBC API、日付形式を使用している:年、月、日。あなたがする必要がある場合java.sql.PreparedStatementや日付を設定しjava.sql.ResultSet、取得日、あなたがされますjava.sql.Dateを扱います。
あなたは使用することができますjava.util.Dateも適用することを何でもjava.sql.Date。

長い時間= にSystem.currentTimeMillis(); 
java.sql.Date日 = 新しい java.sql.Date(時間);

java.sql.Dateそして、java.util.Date最大の違いは、ということであるjava.sql.Date日付は日付のみ、時間がないを保持表します。

たとえば、あなたが使用2009-12-24午後11時20を作成した場合java.sql.Date、その後1時間(午後11時20)、カットされます。あなたが使用して、時間を維持する必要がある場合は  java.sql.Timestamp 代わりにjava.sql.Date

8.java.sql。時間が継承されましたjava.util.Date,只保留了时间

同java.sql.DateクラスはJDBC API、日付の形式を使用している:分と秒。

継承9.java.sql.Timestamp java.util.Date,java.util.Dateクラスには、クラスがgetNanos()メソッドを提供する拡張されました

同java.sql.Dateクラスは、JDBC API日付分、秒ナノ秒:、日付形式を使用しています。

 

参考ます。https://www.jianshu.com/p/1478af429a1e

     https://blog.csdn.net/zhao123h/article/details/53012791

     http://ifeve.com/java-sql-date/

おすすめ

転載: www.cnblogs.com/xkzhangsanx/p/12032719.html