Kotlinでの日付の操作
1. 序章
このクイックチュートリアルでは、Kotlinでの日付の操作について学習します。
日付の作成、フォーマット、操作など、日付-関連の操作について検討します。
2. 日付の作成
Date オブジェクトを作成する最も簡単な方法は、 LocalDateのparse()メソッドを使用することです。
var date = LocalDate.parse("2018-12-12")
parse()メソッドは、デフォルトで標準の日付形式 yyyy-MM-ddを使用します。
独自の形式を渡して、日付文字列を解析することもできます。
var formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy")
var date = LocalDate.parse("31-12-2018", formatter)
さらに制御が必要な場合は、LocalDateのof()メソッドを使用して年、日、月を明示的に指定できます。
var date = LocalDate.of(2018, 12, 31)
3. 日付のフォーマット
次に、日付オブジェクトをStringsにフォーマットして戻す方法を見てみましょう。
Kotlin でデフォルトのフォーマットを使用して日付をフォーマットするデフォルトの方法は、 toString()メソッドを呼び出すことです。
日付を作成しましょう
var date = LocalDate.parse("2018-12-31")
toStringを使用した場合のデフォルトの出力を見てください。
assertThat(date.toString()).isEqualTo("2018-12-31")
出力形式がyyyy-MM-ddであるため、これは読みやすいように見えますが、ユースケースによっては、日付をカスタム形式にフォーマットする必要がある場合があります。
日付をさまざまな形式にフォーマットするには、LocalDateのformat()メソッドを使用し、DateTimeFormatterを使用してカスタムフォーマットを提供します。
var formatter = DateTimeFormatter.ofPattern("dd-MMMM-yyyy")
var formattedDate = date.format(formatter)
これにより、適切にフォーマットされた日付が出力されます。
assertThat(formattedDate).isEqualTo("31-December-2018")
4. 日付コンポーネントの抽出
LocalDate は、Dateから特定のコンポーネントを抽出するために使用できる多くのメソッドを提供します。
日付から年、月、または日を抽出するなど、これらのいくつかは非常に簡単です。
var date = LocalDate.parse("2018-12-31")
assertThat(date.year).isEqualTo(2018)
assertThat(date.month).isEqualTo(Month.DECEMBER)
assertThat(date.dayOfMonth).isEqualTo(31)
e ra 、d ayOfTheWeek 、d ayOfTheMonthなどの他の情報を抽出することもできます。
assertThat(date.era.toString()).isEqualTo("CE")
assertThat(date.dayOfWeek).isEqualTo(DayOfWeek.MONDAY)
assertThat(date.dayOfYear).isEqualTo(365)
5. 期間の操作
最後に、Kotlinでの期間の操作について見ていきましょう。
ピリオドは、タイムライン上の距離を表します。 Period のクラスファクトリメソッドを使用して、Periodを作成できます。
var period = Period.of(1, 2, 3)
これにより、1年、2か月、3日の期間が作成されます。
この期間を既存の日付に追加するには、 LocalDateのplus()メソッドを使用します。
var date = LocalDate.of(2018, 6, 25)
var modifiedDate = date.plus(period)
これにより、指定された日付に1年、2か月、および3日が追加され、変更された日付が生成されます。
assertThat(modifiedDate).isEqualTo("2019-08-28")
同様に、指定された日付から期間を引くことができます。
var date = LocalDate.of(2018, 6, 25)
var modifiedDate = date.minus(period)
そして予想通り、変更日は次のようになります。
assertThat(modifiedDate).isEqualTo("2017-04-22")
また、期間を使用して2つの日付間の距離を表すこともできます。
正確に6か月離れた2つの日付があるとします。
var date1 = LocalDate.parse("2018-06-25")
var date2 = LocalDate.parse("2018-12-25")
これで、Periodの between メソッドを使用して、これら2つの日付間の距離を表すことができます。
var period = Period.between(date1, date2)
期間変数は、次のを生成します:
assertThat(period.toString()).isEqualTo("P6M")
Pは期間の略で、6Mは6か月を意味します。
6. 結論
この記事では、KotlinでDatesを操作する方法の基本を学びました。
さまざまな方法を使用して日付インスタンスを作成する方法と、日付オブジェクトを読み取り可能なテキストにフォーマットする方法を調べました。
さらに、 Date オブジェクトからコンポーネントを抽出し、最後にKotlinでPeriodsを操作する方法を検討しました。
このチュートリアルで使用されているコードは、GitHubでから入手できます。