1前書き

この簡単なチュートリアルでは、Kotlinで日付を操作する方法について学びます。

日付の作成、書式設定、操作など、____日付に関連する操作を検討します。


2日付を作成する


  • Date

    オブジェクトを作成する最も簡単な方法は、

    LocalDate

    `s

    parse()

    メソッドを使用することです。

var date = LocalDate.parse("2018-12-12")


__parse()


methodはデフォルトでhttps://en.wikipedia.org/wiki/ISO

8601

yyyy-MM-dd

を使います。

  • 日付文字列を解析するために独自のフォーマットを渡すこともできます。

var formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy")
var date = LocalDate.parse("31-12-2018", formatter)

さらに制御が必要な場合は、

LocalDate

s

of()

メソッドを使用して

year



day

、および

month

を明示的に指定できます。

var date = LocalDate.of(2018, 12, 31)


3日付のフォーマット

次に、日付オブジェクトを

string

にフォーマットし直す方法を見てみましょう。



  • _Kotlin


    のデフォルトフォーマットを使ってDateをフォーマットするデフォルトの方法は

    toString()メソッド_

日付を作成しましょう

var date = LocalDate.parse("2018-12-31")

そして

toString

を使ったデフォルトの出力を見てください:

assertThat(date.toString()).isEqualTo("2018-12-31")

これは出力フォーマットが

yyyy-MM-dd

であるため読みやすいように見えますが、やはりユースケースによってはカスタムフォーマットに日付をフォーマットする必要があるかもしれません。

  • 日付をさまざまな形式にフォーマットするには、

    LocalDate

    s

    __format()


    method ** を使用し、それに

    DateTimeFormatter__を使用してカスタム形式を指定できます。

var formatter = DateTimeFormatter.ofPattern("dd-MMMM-yyyy")
var formattedDate = date.format(formatter)

これはきれいにフォーマットされた日付を出力します:

assertThat(formattedDate).isEqualTo("31-December-2018")


4日付コンポーネントの抽出


  • __ LocalDate


    は、

    Dateから特定のコンポーネントを抽出するために使用できる多くのメソッドを提供します。


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

Period


を使った作業

最後に、Kotlinの

Periods

を使った作業を見てみましょう。

  • 期間はタイムライン上の距離を表します。

    Period

    のクラスファクトリメソッドを使用して

    Period

    を作成できます。

var period = Period.of(1, 2, 3)

これにより、1年、2ヶ月、3日の期間が作成されます。

この

Period

を既存の日付に追加するには、

LocalDate

‘s

__plus()

__メソッドを使用します。

var date = LocalDate.of(2018, 6, 25)
var modifiedDate = date.plus(period)

これは与えられた日付に1年、2ヶ月と3日を加えて、修正された日付を生成します。

assertThat(modifiedDate).isEqualTo("2019-08-28")

同様に、与えられた日付から

__Period

__を引くことができます。

var date = LocalDate.of(2018, 6, 25)
var modifiedDate = date.minus(period)

そして予想通り、修正日は次のようになります。

assertThat(modifiedDate).isEqualTo("2017-04-22")

また、期間を使用して2つの日付間の距離を表すこともできます。

2つの日付があり、正確に6か月離れているとします。

var date1 = LocalDate.parse("2018-06-25")
var date2 = LocalDate.parse("2018-12-25")

これで、Periodの

__ between

__メソッドを使用して、これら2つの日付間の距離を表すことができます。

var period = Period.between(date1, date2)


period

変数は次のような____を生成します。

assertThat(period.toString()).isEqualTo("P6M")


P



Period

を表し、

__

6Mは6か月を意味します。


6. 結論

この記事では、KotlinでDatesを操作する方法の基本を学びました。

さまざまなメソッドを使用して日付インスタンスを作成する方法と、日付オブジェクトを読みやすいテキストにフォーマットする方法について調べました。

さらに、

Date

オブジェクトからコンポーネントを抽出し、最後にKotlinで

Periods

を操作する方法を調べました。

このチュートリアルで使われているコードはhttps://github.com/eugenp/tutorials/tree/master/kotlin-libraries[over Github]から入手できます。