CodeGym /Java курс /Модул 1 /Съвременен подход за работа с времето

Съвременен подход за работа с времето

Модул 1
Ниво , Урок
На разположение

1. LocalTimeклас

Класът LocalTimeе създаден за случаи, когато трябва да работите с време, но без дата. Да предположим например, че пишете приложение за будилник. Вие се интересувате от часа, но не и от датата.

Класът LocalTimeе много подобен на LocalDateкласа - неговите обекти също не могат да бъдат променяни след създаването.

Получаване на текущото време

За да създадете нов LocalTimeобект, трябва да използвате статичния now()метод. Пример:

LocalTime time = LocalTime.now();

Където timeе LocalTimeпроменлива и е извикване на статичния метод на класа.LocalTime.now()now()LocalTime

Пример:

Код Конзолен изход
LocalTime time = LocalTime.now();
System.out.println("Now = " + time);

Now = 09:13:13.642881600

Точката е последвана от текущия брой наносекунди.

2. Получаване на точно определено време

За да получите точно определено време, трябва да използвате статичния of()метод. Пример:

LocalTime time = LocalTime.of(hours, minutes, seconds, nanoseconds);

Преминавате в часове, minutesи, секунди и наносекунди.

Пример:

Код Конзолен изход
LocalTime time = LocalTime.of(12, 15, 0, 100);
System.out.println("Now = " + time);
Now = 12:15:00.000000100

Между другото, има още две разновидности на този метод:

LocalTime time = LocalTime.of(hours, minutes, seconds);

и

LocalTime time = LocalTime.of(hours, minutes);

Така че можете да използвате това, което ви е по-удобно.

Получаване на време въз основа на индекса на секунда

Можете също да получите времето чрез индекса на секунда в деня. За да направим това, имаме статичен ofSecondOfDay()метод:

LocalTime time = LocalTime.ofSecondOfDay(seconds);

Където секунди е броят секунди от началото на деня.

Пример:

Код Конзолен изход
LocalTime time = LocalTime.ofSecondOfDay(10000);
System.out.println(time);

02:46:40

Да, 10 000 секунди са малко по-малко от три часа. Всичко е точно.

3. Получаване на елементи на времето

За да получим стойността на конкретен елемент от времето от LocalTimeобект, имаме следните методи:

Метод Описание
int getHour()
Връща часовете
int getMinute()
Връща minutesите
int getSecond()
Връща секундите
int getNano()
Връща наносекунди

Пример:

Код Конзолен изход
LocalTime now = LocalTime.now();
System.out.println(now.getHour());
System.out.println(now.getMinute());
System.out.println(now.getSecond());
System.out.println(now.getNano());

2
46
40
0

4. Смяна на часа в LocalTimeобект

Класът LocalTimeсъщо има методи, които ви позволяват да работите с времето. Реализацията на тези методи е аналогична на методите на LocalDateкласа: те не променят съществуващия LocalTimeобект, а instead of това връщат нов с желаните данни.

Ето методите на LocalTimeкласа:

Метод Описание
plusHours(int hours)
Добавя часове
plusMinutes(int minutes)
Добавя minutesи
plusSeconds(int seconds)
Добавя секунди
plusNanos(int nanos)
Добавя наносекунди
minusHours(int hours)
Изважда часове
minusMinutes(int minutes)
Изважда minutesи
minusSeconds(int seconds)
Изважда секунди
minusNanos(int nanos)
Изважда наносекунди

Пример:

Код Конзолен изход
LocalTime time = LocalTime.now();
LocalTime time2 = time.plusHours(2);
LocalTime time3 = time.minusMinutes(40);
LocalTime time4 = time.plusSeconds(3600);

System.out.println(time);
System.out.println(time2);
System.out.println(time3);
System.out.println(time4);





10:33:55.978012200
12:33:55.978012200
09:53:55.978012200
11:33:55.978012200

Обърнете внимание, че във всеки случай получаваме ново време, което е спрямо оригиналния timeобект. Ако добавите 3600 secondsкъм време, тогава добавяте точно 1hour.


Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION