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, Получает Время от значения второго дня |
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");
}
}
Количество времени между двумя LocalTime
Существует два эквивалентных способа расчета суммы единицы времени между двумя LocalTime
: (1) until(Temporal, TemporalUnit)
и через (2) TemporalUnit.between(Temporal, Temporal)
.
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 - неизменный класс и поточно-безопасный, используемый для представления времени, часто рассматриваемого как hour-min-sec. Время представлено до наносекундной точности. Например, значение «13: 45.30.123456789» может быть сохранено в LocalTime.
Этот класс не хранит или не представляет дату или часовую зону. Вместо этого это описание местного времени, которое видно на настенных часах. Он не может представлять мгновение на временной линии без дополнительной информации, такой как смещение или временная зона. Это класс, основанный на значении, метод equals должен использоваться для сравнения.
поля
MAX - Максимальное поддерживаемое LocalTime, '23: 59: 59.999999999 '. MIDNIGHT, MIN, NOON
Важные статические методы
now (), now (Clock clock), теперь (ZoneId zone), parse (текст CharSequence)
Важные методы
isAfter (LocalTime other), isBefore (LocalTime other), минус (TemporalAmount amountToSubtract), минус (longToSubtract, TemporalUnit unit), плюс (TemporalAmount amountToAdd), плюс (long amountToAdd, TemporalUnit unit)
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.
minusHours (long hoursToSubtract), минус минуты (long hoursToMinutes), минусNanos (long nanosToSubtract), минус секунды (длинные секундыToSubtract), plusHours (long hoursToSubtract), плюсMinutes (long hoursToMinutes), плюсNanos (long nanosToSubtract), плюсSeconds (long secondsToSubtract)
now.plusHours(1L);
now1.minusMinutes(20L);