免責事項:この記事は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ノー紹介があり、これは需要のシナリオがある場合に、時刻文字列の解析のためのジョダ-時間も非常に強いです時間を勉強したいと思います。本研究では、それは行くことができます。