新しい日付と時刻のクラスの背後にある設計原則:
不変のクラス
Java8の前に、日付クラスはすべて可変でした。マルチスレッド環境で使用する場合、プログラマーは日付オブジェクトがスレッドセーフであることを確認する必要があります。 Java8の日付と時刻APIは、スレッドセーフの不変のクラスを提供します。プログラマーは、同意の問題を考慮する必要はありません。
ドメインモデル駆動型設計方法
日付と時間の新しいカテゴリは、「ドメイン駆動型のデザイン」に従います。開発者がメソッドとクラスの機能を簡単に理解することは簡単です。
次に、新しい日付と時刻のAPIを見てみましょう。
1.java.time.localdate:
LocalDateは日付のみを提供しますが、時間情報は提供しません。それは不変で糸に安全です。
Package org.smarttechie; Import java.time.localdate; import java.time.temporal.chronounit;/***このクラスはJava 8 Data and Time Api*@author siva prasad rao janapati**/public class dateTimedemonstration {/*/public crags*/public Static vaid main [] localdate localdate = localdate.now(); system.out.println( "現地日は::" + localdate); //月の長さを見つけます。つまり、今月は何日がありますか。 System.out.println( "今月に利用可能な日数::" + localdate.lengthofmonth()); //月の名前name system.out.println( "月nameとは?::" + localdate.getmonth()。name()); //今日の日付に2日を追加します。 system.out.println(localdate.plus(2、chronounit.days)); // Today System.out.println(localdate.minus(2、chronounit.days))から2日から2日間サブトラクト。 //文字列を日付System.out.println(localdate.parse( "2017-04-07"))に変換します。 }}2.java.time.localtime:
LocalTimeは時間のみを提供し、日付情報ではなく、不変でスレッドセーフです。
Package org.smarttechie; Import java.time.localtime; import java.time.temporal.chronounit;/***このクラスはJava 8データとタイムAPI*@Author siva Prasad rao janapati***/public class dateTimedemonstration {/*/public argis localtime = localtime.now(); System.out.println(localtime); // hour of the day system.out.println( "日の時間::" + localtime.gethour())を取得します。 //時間に2時間を追加します。 system.out.println(localtime.plus(2、chronounit.hours)); //時間に6分を追加します。 system.out.println(localtime.plusminutes(6)); //現在の時間system.out.println(localtime.minus(2、chronounit.hours))から2時間をサブトレクトします。 }}3.java.time.localdateTime:
LocalDateTimeは日時に関する情報を提供します、それは不変でスレッドセーフです
パッケージorr.smarttechie; Import java.time.localdatetime; Import java.time.timporal.chronounit;/***このクラスはJava 8データとタイムAPI*@Author siva prasad rao janapati ***/public class datetimedemonstration {/*** @param args*/public sitic bid(] localdateTimeオブジェクトlocaldateTime localdatime = localdateTime.now(); System.out.println(localdateTime); //月の長さを見つけます。つまり、今月は何日がありますか。 System.out.println( "今月に利用可能な日数::" + localDateTime.getMonth()。length(true)); //月の名前name system.out.println( "月nameとは?::" + localdatetime.getmonth()。name()); //今日の日付に2日を追加します。 system.out.println(localdatetime.plus(2、chronounit.days)); // Today System.out.println(localdateTime.minus(2、chronounit.days))から2日から2日間をサブトレクトします。 }} 4.java.time.year:
年については、その年に関する情報を提供します。それは不変で糸に安全です。
パッケージorr.smarttechie; Import java.time.year; import java.time.temporal.chronounit;/***このクラスはJava 8データとタイムAPI*@author siva prasad rao janapati year.now(); System.out.println( "year ::" + year); //年が跳躍年かどうかを知っています。 }}
5.java.time.duration:
持続時間は、2つの日付の間に何秒秒と数ミリ秒が含まれているかを計算するために使用されます。それは不変で糸に安全です。
6.java.time.period:
期間は、指定された2つの日付の間に何日、月、または年が含まれるかを計算するために使用されます。それは不変で糸に安全です。
パッケージorr.smarttechie; Import java.time.localdate; import java.time.period; import java.time.temporal.chronounit;/***このクラスはJava 8データとTime Api*@author siva prasad rao janapati **/public classemonstration {/viad boid aguram **/public dateTimedemonstration {/*** agram args){localdate localdate = localdate.now();期間=期間。 system.out.println(period.getDays()); }}