Java Language
現地時間
サーチ…
構文
- LocalTime time = LocalTime.now(); //現在のシステムクロックで初期化する
- LocalTime time = LocalTime.MIDNIGHT; // 00:00
- LocalTime time = LocalTime.NOON; // 12:00
- LocalTime time = LocalTime.of(12,12,45); // 12:12:45
パラメーター
方法 | 出力 |
---|---|
LocalTime.of(13, 12, 11) | 13:12:11 |
LocalTime.MIDNIGHT | 00:00 |
LocalTime.NOON | 12:00 |
LocalTime.now() | システムクロックからの現在の時間 |
LocalTime.MAX | サポートされている現地時間の最大値23:59:59.999999999 |
LocalTime.MIN | サポートされているローカル時間の最小値00:00 |
LocalTime.ofSecondOfDay(84399) | 23:59:59、2日目の値から時間を取得 |
LocalTime.ofNanoOfDay(2000000000) | 00:00:02、ナノ時代の価値から時間を得る |
備考
クラス名が示すように、 LocalTime
は時間帯のない時間を表します。それは日付を表すものではありません。それは与えられた時間の単純なラベルです。
クラスは値ベースであり、比較を行うときはequals
メソッドを使用する必要があります。
このクラスはjava.timeパッケージからのものです。
時間の変更
時間、分、秒、およびナノ秒を追加できます。
LocalTime time = LocalTime.now();
LocalTime addHours = time.plusHours(5); // Add 5 hours
LocaLTime addMinutes = time.plusMinutes(15) // Add 15 minutes
LocalTime addSeconds = time.plusSeconds(30) // Add 30 seconds
LocalTime addNanoseconds = time.plusNanos(150_000_000) // Add 150.000.000ns (150ms)
時間帯とその時間差
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
public class Test {
public static void main(String[] args)
{
ZoneId zone1 = ZoneId.of("Europe/Berlin");
ZoneId zone2 = ZoneId.of("Brazil/East");
LocalTime now = LocalTime.now();
LocalTime now1 = LocalTime.now(zone1);
LocalTime now2 = LocalTime.now(zone2);
System.out.println("Current Time : " + now);
System.out.println("Berlin Time : " + now1);
System.out.println("Brazil Time : " + now2);
long minutesBetween = ChronoUnit.MINUTES.between(now2, now1);
System.out.println("Minutes Between Berlin and Brazil : " + minutesBetween +"mins");
}
}
2つのLocalTimeの間の時間
2つのLocalTime
間の時間単位の量を計算するには、(1) LocalTime
until(Temporal, TemporalUnit)
メソッドと(2) TemporalUnit.between(Temporal, Temporal)
2つの同等の方法があります。
import java.time.LocalTime;
import java.time.temporal.ChronoUnit;
public class AmountOfTime {
public static void main(String[] args) {
LocalTime start = LocalTime.of(1, 0, 0); // hour, minute, second
LocalTime end = LocalTime.of(2, 10, 20); // hour, minute, second
long halfDays1 = start.until(end, ChronoUnit.HALF_DAYS); // 0
long halfDays2 = ChronoUnit.HALF_DAYS.between(start, end); // 0
long hours1 = start.until(end, ChronoUnit.HOURS); // 1
long hours2 = ChronoUnit.HOURS.between(start, end); // 1
long minutes1 = start.until(end, ChronoUnit.MINUTES); // 70
long minutes2 = ChronoUnit.MINUTES.between(start, end); // 70
long seconds1 = start.until(end, ChronoUnit.SECONDS); // 4220
long seconds2 = ChronoUnit.SECONDS.between(start, end); // 4220
long millisecs1 = start.until(end, ChronoUnit.MILLIS); // 4220000
long millisecs2 = ChronoUnit.MILLIS.between(start, end); // 4220000
long microsecs1 = start.until(end, ChronoUnit.MICROS); // 4220000000
long microsecs2 = ChronoUnit.MICROS.between(start, end); // 4220000000
long nanosecs1 = start.until(end, ChronoUnit.NANOS); // 4220000000000
long nanosecs2 = ChronoUnit.NANOS.between(start, end); // 4220000000000
// Using others ChronoUnit will be thrown UnsupportedTemporalTypeException.
// The following methods are examples thereof.
long days1 = start.until(end, ChronoUnit.DAYS);
long days2 = ChronoUnit.DAYS.between(start, end);
}
}
イントロ
LocalTimeは、時間を表すために使用される不変のクラスで、スレッドセーフであり、しばしば時分秒と見なされます。時間はナノ秒の精度で表されます。たとえば、値「13:45.30.123456789」をLocalTimeに格納できます。
このクラスは、日付またはタイムゾーンを格納または表すことはありません。代わりに、壁時計に表示されている現地時間の説明です。オフセットやタイムゾーンなどの追加情報なしでは、タイムライン上で瞬間を表すことはできません。これは値ベースのクラスで、equalsメソッドを比較に使用する必要があります。
フィールド
MAX - サポートされているローカル時間の最大値、'23:59:59.999999999 '。ミッドナイト、ミン、ノーオン
重要な静的メソッド
now()、now(クロッククロック)、now(ZoneIdゾーン)、parse(CharSequence text)
重要なインスタンスメソッド
isAfter(LocalTime other)、isBefore(LocalTime other)、マイナス(TemporalAmount amountToSubtract)、マイナス(long amountToSubtract、TemporalUnit単位)、プラス(TemporalAmount amountToAdd)、プラス(long amountToAdd、TemporalUnit単位)
ZoneId zone = ZoneId.of("Asia/Kolkata");
LocalTime now = LocalTime.now();
LocalTime now1 = LocalTime.now(zone);
LocalTime then = LocalTime.parse("04:16:40");
時間差は以下のいずれかの方法で計算できます
long timeDiff = Duration.between(now, now1).toMinutes();
long timeDiff1 = java.time.temporal.ChronoUnit.MINUTES.between(now2, now1);
LocalTimeの任意のオブジェクトから時間、分、秒を加算/減算することもできます。
minusNanos(long nanosToSubtract)、minusSeconds(long secondsToSubtract)、plusHours(long hoursToSubtract)、PlusMinutes(long hoursToMinutes)、PlusNanos(long nanosToSubtract)、PlusSeconds(long secondsToSubtract)
now.plusHours(1L);
now1.minusMinutes(20L);