Javaの日付処理コンポーネントジョダタイム

免責事項:この記事はxing_starオリジナル記事です、ソースを明記してください!

この記事の同期http://javaexception.com/archives/175

Javaの日付処理コンポーネントジョダタイム

通常、開発プロセス、処理日時に、基本的にこれに対処するためのSimpleDateFormatを使用するも大丈夫ですが、時には、治療上の日付と時刻をツールの長所を見つけたい、私はのために与えられた、ということを期待タイムスタンプは、文字列または時刻の形式の文字列である強力なAPIを持つことができ、簡単に私が日付を解析することができ、時、分、ほかにもこのことを知っているスタンプは年の日数に対応する第1の時間であり、 、何日今月、というように。誰もが使用するために、いくつかの研究の後やサードパーティ製のJavaフレームワークは、拡張機能を行うことを決議し、日付と時刻、日付処理コンポーネントは、本当に強力ジョダ-時間がされていることが判明し、それが推奨されます。

今から16年後には、私は多くのプロジェクトでは、このコンポーネントを使用します。次に、ジョダ時間の使い方の一部を示す、一般的な需要のシナリオを使用しています。

私は時間の姿など6:47 PM、9:09 PM、午前11時48分を、達成したい効果を示す、以下に示すように

次のように完全なコードは次のとおりです。

パブリック 静的文字列getTimeString2(文字列の時間){
     長い timeMills = Long.parseLong(時間)。
    DateTime dateTimeに = 新しい日時(timeMills)。
    INTのHOUR_OF_DAY = dateTime.getHourOfDay()。
    int型 hourOfDayOf12 = のHOUR_OF_DAY。
    int型分= dateTime.getMinuteOfHour(); 
    文字列の余分 =「」;
    もし(のHOUR_OF_DAY == 0 ){ 
        余分 = "凌晨" 
        hourOfDayOf12 = 12 
    } それ以外の 場合(のHOUR_OF_DAY> 0 &&のHOUR_OF_DAY <12 ){ 
        余分 = "上午" 
    } そう であれば(のHOUR_OF_DAY> = 12 &&のHOUR_OF_DAY <13 ){ 
        余分 = "中午" 
    } そう であれば(のHOUR_OF_DAY> 13 &&のHOUR_OF_DAY <= 18 ){ 
        余分 = "下午" 
        hourOfDayOf12 =のHOUR_OF_DAY - 12 
    } そう であれば(のHOUR_OF_DAY> 18 &&のHOUR_OF_DAY <= 23 ){ 
        余分 = "晚上" 
        hourOfDayOf12 =のHOUR_OF_DAY - 12  = "" ;
    もし(分<10 ){ 
        prefixMinute = "0" 
    } 
    を返す ":" + prefixMinute +エクストラ+ hourOfDayOf12 + 分。
}

ジョダ-時間は、共通のAPIがDateTimeのある、一般的に、我々は様々な値がターゲットDateTiemに日付と時刻によって取得することができた後、タイムスタンプ型のロングのDateTimeコンストラクタを渡すことができます

dateTime.getHourOfDay(); // 日間のポイント
dateTime.getMinuteOfHour(); // その時間の数分以内に
dateTime.getYear(); // 何年
dateTime.getMonthOfYear(); // 
dateTime.getDayOfMonth(); // 月の数です。
dateTime.getDayOfYear(); // 年の最初の数日間
DateTime.Now()getDayOfYear();. // 日取得するには、今年の日です

その後、別の画像効果を見て、この画像は私が期待する効果も、特定の日付を表示するには昨日であり、それがある場合には、同じ日の当日、朝昼の午後は、特定の時刻を示して示しています。

 

 

次のように完全なコードは次のとおりです。

パブリック 静的文字列getTimeString(文字列の時間){
     長い timeMills = Long.parseLong(時間)。
    DateTime dateTimeに = 新しい日時(timeMills)。
    int型の年= dateTime.getYear();
    int型の月= dateTime.getMonthOfYear();
    INT DAYOFMONTH = dateTime.getDayOfMonth()。
    INT DAYOFYEAR = dateTime.getDayOfYear()。
    INT nowDayOfYear = DateTime.now()getDayOfYear()。
    もし(DAYOFYEAR <= nowDayOfYear){
         場合(DAYOFYEAR == nowDayOfYear){
            戻るgetTimeString2(時間を)。
        } そう であれば(nowDayOfYear - DAYOFYEAR == 1 ){
             リターン "昨天" 
        } {
             戻り年+ "/" +月+ "/" + DAYOFMONTH。
        } 
    } 
    戻り年+ "/" +月+ "/" + DAYOFMONTH。
}

今日の判決があるかどうかを判断しようとしています

dateTime.getDayOfYear()
IF(dateTime.getDayOfYear()== DateTime.Now()getDayOfYear()); //はそれが今日で表し、

ジョダ時のために、多くの他のAPIノー紹介があり、これは需要のシナリオがある場合に、時刻文字列の解析のためのジョダ-時間も非常に強いです時間を勉強したいと思います。本研究では、それは行くことができます。

 

githubのプロジェクトアドレス

https://github.com/JodaOrg/joda-time

おすすめ

転載: www.cnblogs.com/xing-star/p/11248979.html