操作[Java]日付と時刻
4488 ワード
日付と時刻を処理するクラス
操作の現在の日付
Date now = new Date();
Dateクラスを使用してインスタンスを作成すると、オブジェクトの作成時の日付と時刻がインスタンスに保存されます.日付データ変更時
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 1);
Date nextMonth = cal.getTime();
Calendarでは、プログラマがランダムにインスタンスを作成することはできません.したがって、getInstance()メソッドを使用してオブジェクトを作成できます.Calendarクラスの主な定数
指定日に設定した場合
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
Date specificTime = cal.getTime();
setメソッドの最初の引数に対応する値が変更され、残りは現在の時間に参照されます.日付から特定のアイテムを抽出する場合。
Date specificTime = cal.getTime();
int month = cal.get(Calendar.MONTH);
日付から月を取得するときに使用する方法.ただし、get()は月をインポートすると-1がインポートされるため、月を使用する場合は1を追加して返す必要があります.出力日データをフォーマットする場合
Date specificTime = cal.getTime():
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
String formatedStr = sdf.format(specficTime);
SimpleDataFormatクラスの作成者に文字列フォーマットを追加し、Dateクラスをformateメソッドの引数として使用することで、文字列を対応するフォーマットに変更できます.単純なデータ形式
日付データの比較時
日付データの比較には、CalendarクラスのcompareTomメソッドを使用します.
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.set(Calendar.DAY_OF_MONTH, 1);
cal2.set(Calendar.DAY_OF_MONTH, 2);
int result = cal1.compareTom(cal2);
以上のコードの結果は、比較値が-1未満の場合に-1を返します.同じ場合は0、大きい場合は1を返します.compareToに似た方法
Date-Time API
Java 8に日時APIが追加されました.Date-time APIは,以前のJavaで処理されていた日付クラスの不足を補う.
時差アプリケーションでは、日時APIが便利です.時差だけでなく、夏時間制など、時間に関するルールも処理できます.
1.時差を考慮しない場合は、Localで始まるクラスを使用します.
2.時差ぼけの処理には、Offsetで始まるクラスを使用します.
3.時差ぼけだけでなく現地時間も考慮した場合はZonedDateTimeを使用することをお勧めします.
// 시차 X
LocalDateTime localDateTime = LocalDateTime.now();
// 시차 O
OffsetDateTime offsetDateTime = OffsetDateTime.of(2022, Month.MARCH.getValue(), 26, 20, 30, 30, 0, ZoneOffset.of("+09:00"));
// 시차 O, 지역 정보 O
ZonedDateTime zonedDateTime = ZonedDateTime.parse("2022-03-26T20:30+09:00[Asia/Seoul]");
LocalDataTimeではnewを使用してオブジェクトを作成できません.静的メソッドを使用して作成する必要があります.now以外にも、度(Do)を作成する方法はいくつかあります.期間
処理期間には2つのクラスがあります.
1.Period:日付間隔を扱うクラス
2.Duration:時間間隔クラス
Period period = Period.between(localDateTime1.toLocalDate(), localDateTime2.toLocalDate());
period.getYears(); // 연차
period.getMonth(); // 월차
period.getDays(); // 일차
period.toTotalMonths(); // 누적
Duration duration = Duration.between(localDateTime1, localDateTime2);
duration.getNano(); // 나노차
duration.toDays(); // 일차
duration.toHours(); // 시간차
duration.toMinutes(); // 분차
duration.getSeconds(); // 초치
duration.toMillis(); // 밀리초차
duration.toNanos(); // 나노차
PeriodとDurationは両者の間の方法を用いて持続時間を決定した.Date-time APIのDate、Calendarクラスのサポート
多くのアプリケーションでは、CalendarクラスとDateクラスが使用されています.このようなシステムでDate-timeを使用するには、CalendarとDateに変換する必要があります.このため、Date-timeはInstantクラスを使用した変換をサポートします.
Instant instant = localDateTime.toInstant(ZoneOffset.of("+09:00"));
Date date = Date.from(instant);
日時APIはナノ秒までカウントできますが、CalendarクラスとDateクラスはミリ秒までカウントできるので、変換時にデータが失われないことに注意してください.Reference
この問題について(操作[Java]日付と時刻), 我々は、より多くの情報をここで見つけました https://velog.io/@danny0129/Java-날짜-및-시간-조작テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol