1.概要


Timestamp

は、Javaのいくつかの従来の日時オブジェクトの1つです。

このチュートリアルでは、

String

値から

Timestamp

オブジェクトに解析する方法と、

Timestamp

オブジェクトを__Stringにフォーマットする方法について説明します。

また、

Timestamp

はJava独自のフォーマットに依存しているため、効果的に適応する方法がわかります。

2.

String



Timestamp

に解析します

2.1. 標準フォーマット


  • __Stringを

    Timestamp

    に解析する最も簡単な方法は、その


    valueOf

    __methodです。

Timestamp.valueOf("2018-11-12 01:02:03.123456789")

また、

String

がJDBCタイムスタンプ形式(

yyyy-m[m]-d[d]hh:mm

:

ss[.f …​]

)の場合 – それは非常に簡単です。

このパターンをこのように解釈することができます。

| =================================================== ==================== | |パターン|説明|例|

yyyy

|年を表します。 | 2018年

|

m[m]

|月コンポーネントの場合、1桁または2桁(1から12まで)が必要です。 | 1、11

|

d[d]

|日にちの値には、1桁または2桁(1から31まで)が必要です。 | 7、12

|

hh

| 0から23までの許容値で、その日の時間を表します。| 01、16

|

mm

| 0から59までの許容値で、分の分を表します。| 02、45

|

ss

|分単位の秒を表します。0から59までの許容値があります。| 03、52

|

[。f …​]

|秒単位のオプションの小数部を表します。最大ナノ秒の精度で指定できる値は0から999999999です。

| 12、1567、123456789 | ============================================== ===========================

2.2. 代替フォーマット

JDBCタイムスタンプ形式ではない場合は、幸いなことに、

__ valueOf


alsoは


LocalDateTime

__インスタンスを取ります。

  • これは、任意の形式の日付を取ることができることを意味します。** まずhttps://www.baeldung.com/java-string-to-date[

    LocalDateTime

    ]に変換します

String pattern = "MMM dd, yyyy HH:mm:ss.SSSSSSSS";
String timestampAsString = "Nov 12, 2018 13:02:56.12345678";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
LocalDateTime localDateTime = LocalDateTime.from(formatter.parse(timestampAsString));

それから、以前に行った

valueOf

を使用できます。

Timestamp timestamp = Timestamp.valueOf(localDateTime);
assertEquals("2018-11-12 13:02:56.12345678", timestamp.toString());


Date

オブジェクトとは異なり、__Timestampオブジェクトは秒の小数部を格納することができます。

3.

Timestamp



String

としてフォーマットします


Timestamp

をフォーマットするには、デフォルトのフォーマットが独自のJDBCタイムスタンプフォーマットであるため、同じ課題があります。

assertEquals("2018-11-12 13:02:56.12345678", timestamp.toString());

しかし、やはり、中間変換を使用して、結果の

String

をISO-8601規格のような異なる日付と時刻のパターンにフォーマットできます。

Timestamp timestamp = Timestamp.valueOf("2018-12-12 01:02:03.123456789");
DateTimeFormatter formatter = DateTimeFormatter.ISO__LOCAL__DATE__TIME;

String timestampAsString = formatter.format(timestamp.toLocalDateTime());
assertEquals("2018-12-12T01:02:03.123456789", timestampAsString);

4.まとめ

この記事では、Javaで

String

オブジェクトと

Timestamp

オブジェクトを変換する方法を説明しました。また、

LocalDateTime

変換を中間のステップとして使用して、さまざまな日付と時刻のパターンとの間で変換する方法も説明しました。

そして、これらすべての例とスニペットhttps://github.com/eugenp/tutorials/tree/master/java-dates[GitHubについて]を必ず見つけてください。