サーチ…


構文

  • 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);


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow