Java 11 の新しい Period クラスと Duration クラスを使用して日付と時間間隔を処理する
概要: Java 11 では、新しい Period クラスと Duration クラスが導入され、日付と時間間隔の処理がより簡単かつ柔軟になります。この記事では、これら 2 つのクラスの基本概念と使用法を紹介し、読者がこれらのクラスをよりよく理解して使用できるようにいくつかのコード例を示します。
1. Period クラス
Period クラスは、日付間の間隔を表すために使用されます。これには、年、月、日の 3 つのフィールドが含まれています。次のコード例を使用して、Period オブジェクトを作成できます:
import java.time.LocalDate; import java.time.Period; public class PeriodExample { public static void main(String[] args) { LocalDate start = LocalDate.of(2021, 1, 1); LocalDate end = LocalDate.of(2022, 1, 1); Period period = Period.between(start, end); System.out.println("Years: " + period.getYears()); System.out.println("Months: " + period.getMonths()); System.out.println("Days: " + period.getDays()); } }
出力結果は次のとおりです:
Years: 1 Months: 0 Days: 0
上記の例では、次のコードを使用しました。 LocalDate
クラスを使用して日付を表し、Period.between()
メソッドを使用して 2 つの日付間の間隔を計算します。間隔の年、月、日は、getyears()
、getMonths()
、および getDays()
メソッドを通じて取得できます。
2.Duration クラス
Duration クラスは、時間間の間隔を表すために使用されます。次のコード例を使用して、Duration オブジェクトを作成できます:
import java.time.LocalTime; import java.time.Duration; public class DurationExample { public static void main(String[] args) { LocalTime start = LocalTime.of(10, 0, 0); LocalTime end = LocalTime.of(12, 0, 0); Duration duration = Duration.between(start, end); System.out.println("Hours: " + duration.toHours()); System.out.println("Minutes: " + duration.toMinutes()); System.out.println("Seconds: " + duration.getSeconds()); } }
出力結果は次のとおりです:
Hours: 2 Minutes: 120 Seconds: 7200
上記の例では、 The LocalTime を使用しました。
クラスは時間を表し、Duration.between()
メソッドを使用して 2 つの時間間の間隔を計算します。間隔の時、分、秒は、toHours()
、toMinutes()
、および getSeconds()
メソッドを通じて取得できます。
3. 期間と期間の操作
日付と時間の間隔の計算に加えて、期間と期間のクラスは、以下に示すように、間隔を加算および減算するためのいくつかの操作メソッドも提供します。
import java.time.LocalDate; import java.time.Period; public class PeriodOperationExample { public static void main(String[] args) { LocalDate date = LocalDate.of(2021, 1, 1); Period period = Period.of(1, 2, 3); LocalDate result = date.plus(period); System.out.println("Result: " + result); } }出力結果は次のとおりです:
Result: 2022-03-04上記の例では、
plus() メソッドを使用して、指定された間隔を日付に追加しました。
plusyears()、
plusMonths()、
plusDays() メソッドを使用して、指定した年数、月数、および日数を日付に加算できます。 、 それぞれ。
- Oracle 公式ドキュメント: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time /Period.html
- Oracle 公式ドキュメント: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/Duration.html
以上がJava 11 の新しい Period クラスと Duration クラスを使用して日付と時間間隔を処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

javaispopularforsoss-platformdesktopapplicationsduetoits "writeonce、runaynay" philosophy.1)itusesbytecodatiTatrunnanyjvm-adipplatform.2)ライブラリリケンディンガンドジャヴァフククレアティック - ルルクリス

Javaでプラットフォーム固有のコードを作成する理由には、特定のオペレーティングシステム機能へのアクセス、特定のハードウェアとの対話、パフォーマンスの最適化が含まれます。 1)JNAまたはJNIを使用して、Windowsレジストリにアクセスします。 2)JNIを介してLinux固有のハードウェアドライバーと対話します。 3)金属を使用して、JNIを介してMacOSのゲームパフォーマンスを最適化します。それにもかかわらず、プラットフォーム固有のコードを書くことは、コードの移植性に影響を与え、複雑さを高め、パフォーマンスのオーバーヘッドとセキュリティのリスクをもたらす可能性があります。

Javaは、クラウドネイティブアプリケーション、マルチプラットフォームの展開、および言語間の相互運用性を通じて、プラットフォームの独立性をさらに強化します。 1)クラウドネイティブアプリケーションは、GraalvmとQuarkusを使用してスタートアップ速度を向上させます。 2)Javaは、埋め込みデバイス、モバイルデバイス、量子コンピューターに拡張されます。 3)Graalvmを通じて、JavaはPythonやJavaScriptなどの言語とシームレスに統合して、言語間の相互運用性を高めます。

Javaの強力なタイプ化されたシステムは、タイプの安全性、統一タイプの変換、多型を通じてプラットフォームの独立性を保証します。 1)タイプの安全性は、コンパイル時間でタイプチェックを実行して、ランタイムエラーを回避します。 2)統一された型変換ルールは、すべてのプラットフォームで一貫しています。 3)多型とインターフェイスメカニズムにより、コードはさまざまなプラットフォームで一貫して動作します。

JNIはJavaのプラットフォームの独立を破壊します。 1)JNIは特定のプラットフォームにローカルライブラリを必要とします。2)ローカルコードをターゲットプラットフォームにコンパイルおよびリンクする必要があります。3)異なるバージョンのオペレーティングシステムまたはJVMは、異なるローカルライブラリバージョンを必要とする場合があります。

新しいテクノロジーは、両方の脅威をもたらし、Javaのプラットフォームの独立性を高めます。 1)Dockerなどのクラウドコンピューティングとコンテナ化テクノロジーは、Javaのプラットフォームの独立性を強化しますが、さまざまなクラウド環境に適応するために最適化する必要があります。 2)WebAssemblyは、Graalvmを介してJavaコードをコンパイルし、プラットフォームの独立性を拡張しますが、パフォーマンスのために他の言語と競合する必要があります。

JVMの実装が異なると、プラットフォームの独立性が得られますが、パフォーマンスはわずかに異なります。 1。OracleHotspotとOpenJDKJVMは、プラットフォームの独立性で同様に機能しますが、OpenJDKは追加の構成が必要になる場合があります。 2。IBMJ9JVMは、特定のオペレーティングシステムで最適化を実行します。 3. Graalvmは複数の言語をサポートし、追加の構成が必要です。 4。AzulzingJVMには、特定のプラットフォーム調整が必要です。

プラットフォームの独立性により、開発コストが削減され、複数のオペレーティングシステムで同じコードセットを実行することで開発時間を短縮します。具体的には、次のように表示されます。1。開発時間を短縮すると、1セットのコードのみが必要です。 2。メンテナンスコストを削減し、テストプロセスを統合します。 3.展開プロセスを簡素化するための迅速な反復とチームコラボレーション。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック









