Дата и время в Java 8. Продолжительность, класс Duration

июля
11
2014

Содержание

Класс Duration служит для хранения продолжительности времени на основе секунд и наносекунд. Также для отображения длительности можно использовать и другие величины, вроде минут, часов, дней. Однако, основное предназначение этого класса - представление небольших промежутов времени. Для работы с длительными промежутками времени предназначен другой класс - Period.

Обратите внимание, что при вычислении продолжительности не учитывается переход на летнее/зимнее время.

Максимальное значение продолжительности равняется максимальному значению типа Long в секундах. Т.е., 2^63-1 секунд или ~3 * 10^11 лет! Это больше, чем предполагаемый возраст вселенной.

Секунды и наносекунды хранятся отдельно. Как было сказано выше, секунды хранятся в переменной типа long, наносекунды - в переменной типа int. Причем сохраняются только наносекунды от секунды и всегда в пределах от 0 до 999 999 999.

Создание экземпляров класса Duration

Рассмотрим пример создания экземпляров Duration с использованием статических методов:


import java.time.Duration;
import java.time.LocalDateTime;
import java.time.Month;

public class Main {
	public static void main(String[] args) {
		LocalDateTime from = LocalDateTime.of(2014, Month.JULY, 9, 12, 00);
		LocalDateTime to = LocalDateTime.of(2014, Month.JULY, 9, 13, 00);
		
		Duration duration = Duration.between(from, to);
		System.out.println("duration: " + duration.toMinutes());
	}
	
}
// output
// duration: 3600000


Метод Описание
between(Temporal startInclusive, Temporal endExclusive)
from(TemporalAmount amount)
of(long amount, TemporalUnit unit)
ofDays(long days)
ofHours(long hours)
ofMillis(long millis)
ofMinutes(long minutes)
ofNanos(long nanos)
ofSeconds(long seconds)
ofSeconds(long seconds, long nanoAdjustment)
parse(CharSequence text)

Рассмотрим подробнее метод parse. Этот метод преобразовует текстовое представление продолжительности вида PnDTnHnMn.nS в объект Duration. Строка начинается с опционального символа '+' или '-'. Затем следует символ 'P' в нижнем или верхнем регистре. Далее могут быть 4 секции, каждая из которых содержит число и суффикс. Суффиксами могут быть следующие символы 'D', 'H', 'M' и 'S' для дней, часов, минут и секунд соответственно. При этом не важно в нижнем или верхнем регистре. Символ 'T' (time, время) должен быть перед первым появлением секции часов, минут или секунд (символы 'H', 'M' и 'S'). После символа 'T' должна быть минимум одна секция. Например:


import java.time.Duration;

public class Main {
	public static void main(String[] args) {
	    System.out.println("1: " + Duration.parse( "+PT20.345S" ));
	    System.out.println("2: " + Duration.parse( "PT20.345S" ));
	    System.out.println("3: " + Duration.parse( "PT15M" ));
	    System.out.println("4: " + Duration.parse( "PT10H" ));
	    System.out.println("5: " + Duration.parse( "P2D" ));
	    System.out.println("6: " + Duration.parse( "P2DT3H4M" ));
	    System.out.println("7: " + Duration.parse( "PT-6H3M" ));
	    System.out.println("8: " + Duration.parse( "-PT6H3M" ));
	    System.out.println("9: " + Duration.parse( "-PT-6H+3M" ));
	    System.out.println("9: " + Duration.parse( "P-2DT-6H3M" ));
	}
}

// output
// 1: PT20.345S
// 2: PT20.345S
// 3: PT15M
// 4: PT10H
// 5: PT48H
// 6: PT51H4M
// 7: PT-5H-57M
// 8: PT-6H-3M
// 9: PT5H57M
// 9: PT-53H-57M

Как видно из примера, продолжительность также может быть негативной. Для преобразования даты к позитивному виду используйте метод abs(), для проверки или дата является негативной - метод isNegative(), а для преобразования даты к негативному виду - метод negated():


import java.time.Duration;

public class Main {
	public static void main(String[] args) {
	    Duration minusTwoDays = Duration.ofDays( -2 );
		System.out.println("minusTwoDays: " + minusTwoDays);
		if( minusTwoDays.isNegative() ){
			Duration twoDays = minusTwoDays.abs();
			System.out.println("twoDays: " + twoDays);
			System.out.println("minusTwoDays: " + twoDays.negated());
		}
	}
}

// output:
// minusTwoDays: PT-48H
// twoDays: PT48H
// minusTwoDays: PT-48H

Ниже представлены примеры использования методов of*


import java.time.Duration;

public class Main {
	public static void main(String[] args) {
	    System.out.println("ofDays: " + Duration.ofDays( 2 ));
	    System.out.println("ofHours: " + Duration.ofHours( 4 ));
	    System.out.println("ofMinutes: " + Duration.ofMinutes( 3 ));
	    System.out.println("ofSeconds: " + Duration.ofSeconds( 14 ));
	    System.out.println("ofSeconds2: " + Duration.ofSeconds( 14, 1500050 ));
	    System.out.println("ofMillis: " + Duration.ofMillis( 150 ));
	    System.out.println("ofNanos: " + Duration.ofNanos( 35005 ));
	}
}

// output:
// ofDays: PT48H
// ofHours: PT4H
// ofMinutes: PT3M
// ofSeconds: PT14S
// ofSeconds2: PT14.00150005S
// ofMillis: PT0.15S
// ofNanos: PT0.000035005S

Получение продолжительности в нужном формате

Ниже представлены методы, с помощью которых можно получить значения продолжительности в разных величинах:

Метод Описание
getNano()
getSeconds()
toDays()
toHours()
toMinutes()
toMillis()
toNanos()

Ниже примеры, демонстрирующие все методы:


import java.time.Duration;

public class Main {
	public static void main(String[] args) {
	    Duration twoDays = Duration.ofDays( 2 );
	    System.out.println("toDays: " + twoDays.toDays());
	    System.out.println("toHours: " + twoDays.toHours());
	    System.out.println("toMinutes: " + twoDays.toMinutes());
	    System.out.println("getSeconds: " + twoDays.getSeconds());
	    System.out.println("toMillis: " + twoDays.toMillis());
	    System.out.println("toNanos: " + twoDays.toNanos());
	    System.out.println("getNano: " + twoDays.getNano());
	}
}

// output:
// toDays: 2
// toHours: 48
// toMinutes: 2880
// getSeconds: 172800
// toMillis: 172800000
// toNanos: 172800000000000
// getNano: 0


Изменение продолжительности

Как и в случае с классом LocalDateTime, в классе Duration существуют удобные методы для изменения продолжительности: plus*, minus* и with*:

Метод Описание
minus(Duration duration)
minusDays(long daysToSubtract)
minusHours(long hoursToSubtract)
minusMinutes(long minutesToSubtract)
minusSeconds(long secondsToSubtract)
minusMillis(long millisToSubtract)
minusNanos(long nanosToSubtract)
plus(Duration duration)
plusDays(long daysToAdd)
plusHours(long hoursToAdd)
plusMinutes(long minutesToAdd)
plusSeconds(long secondsToAdd)
plusMillis(long millisToAdd)
plusNanos(long nanosToAdd)
multipliedBy(long multiplicand)
dividedBy(long divisor)
withNanos(int nanoOfSecond)
withSeconds(long seconds)

Эти методы возвращают объект Duration, поэтому можно выполнять последовательность действий. Например:


import java.time.Duration;

public class Main {
	public static void main(String[] args) {
		Duration duration = Duration
				.parse( "P21DT5H15M45.150S" )
				.plusNanos( 150 )
				.plusDays(2)
				.minusMinutes(15)
				.dividedBy(2);
		System.out.println("duration: " + duration);	
	}
}

// output:
// duration: PT278H30M22.575000075S

< Дата и время в Java 8. Сравнение даты и времени

Комментарии (6)

Andrewjn
8 марта 2023 г. 19:09
Самодействующие условные службы (AVS, Unconscious Virtual Services) — это виртуальные занятия, которые оплачивают завышенную темп поддержания клиентов посредством разные каналы узы, эти как эбонитовый друг, электронная почта, веб-чат а также так далее AVS обычно утилизируются для шлифования рутинных доказательств, хоть бы, чтобы отыскивания информации, оформления заказов чи склерозник на услуги, да предоставления соответствующих образчиков о товарах также услугах. Город тоже быть в наличии применены чтобы возделывания и отклика сверху часто задаваемые задачи (ЧЗВ).

AVS может крыться сконструирован на различных платформах равно разных разработках, этаких яко научно-образовательный интерактивный голосовой экзархиатр (IVR, интерактивный голосовой эхо), текстуальный обработчик (NLP, электрообработка непринужденного слога) а также боты.
петроченков маркетинг
Andrewjn
16 марта 2023 г. 17:04

Веб-маркетинг — этто поведение употребления сети интернет чтобы продвижения бизнеса или продукта. Спирт заключает в себе разные способы и технологические процессы, которые смогут гнездиться употреблены чтобы вербования и вербования посетителей, а также чтобы привлечения клиентов.

Некоторые с самых общераспространенных методов веб-маркетинга:

Оптимизация разыскивания посетителей (SEO) - этто процесс сайта таким манером, чтоб спирт был унше зрим в течение представительстве Google.

Контекстуальная реклама (PPC) - это форма рекламы, которая в рекламодателе выплачивает за отдельный клик по евонный рекламе. Через слово используется на свойстве аргумента в течение полезность SEO.

Телемаркетинг сквозь электрическую почту (E-mail Marketing) - это отправка рекламных сообщений числом электронной почте чи числом почте чтобы посетителей
маркетинг медицина


баннерная реклама яндексе 828a3da
p@11=777


Andrewjn
2 апреля 2023 г. 14:33

Веб-маркетинг — этто стратегия употребления онлайна для продвижения коммерциала или продукта. Он включает в течение себе различные методы равно технологии, тот или другой смогут быть приняты на вооружение для привлечения (а) также вербования покупателей, что-что также для вербования клиентов.

Часть с наиболее общераспространенных методов веб-маркетинга:

Сверхоптимизация поиска клиентом (SEO) - этто эпидпроцесс сайта этаким образом, чтоб он был унше видан на представительстве Google.

Контекстуальная экспресс-реклама (PPC) - это штамп рекламы, которая на рекламодателе уплачивает согласен каждодневный щелчок по его рекламе. Часто используется в течение черте довода в течение прок SEO.

Телемаркетинг через электронную почту (E-mail Marketing) - это экспедиция маркетинговых сообщений числом электрической почте или числом почте чтобы клиентов
social bookmarking link building


каталог статей c6847ee
p@11=777


Andrewjn
1 мая 2023 г. 16:24
В целом, создание футболки вместе с вашим собственное дизайн в "Окружающая среда принтов" – это отличный способ выразить свою индивидуальность и создать отличительный одежда. Простая и легкая создание процедура, высокое качество решения и по разумной цене цены делают "Печать Мир" самым лучшим магазин для людей, которые хотят производить свою индивидуальную эксклюзивную футболку.|
Многих из нас ищите торговцы именно где они могут покупать превосходное качество спортивные штаны, футболки, шорты, плащи, боди, одеяла, кружки вместе с прочим компоненты. Тем не менее, среди много доставляет, это не так просто найти настоящий модель который предлагает правильный сочетание стиль и комфорт.
Где можно найти Все это и многое другое? И какой держат на самом деле должен быть вы выбираете ? Ответ легко: это самый лучший магазин для специальных гравюры, где вы откроете каждого из выше предметов и многое другое.
Этот торговая точка предоставляет разнообразие спортивной одежды и неофициальный используйте это определенно идеально для обоих одинаково взрослых мужчин и женщин. независимо от того, что мода вы хотите самый лучший, в этом магазин розничной торговли вы сможете найти что именно есть лучше для ваших нужд.
Большой выбор спортивных штанов
Давайте начнем с одежда для тренировок и спортивных мероприятия. Магазин предоставляет идеальные спортивные штаны доступно на рынке, такие как обычными джоггерами, брюки и компрессионные штаны. Они предлагают наивысший утешение во время обучение, и также может быть подходит для повседневно надевать.
3D футболки и шорты
Магазин также содержит широкий выбор 3D воздействие футболки. Эти футболки привлекают многих внимания благодаря их ярких и красочных принтов. Шорты также могут быть доступными во многих принтов, идеально подходит для спортивных мероприятий или летнего сезона прогулок.
Толстовки и Кофты
Вместе с со спортивной одеждой, вы также можете получить незабываемые толстовки и толстовки с многочисленными принтами в магазине. Такого рода вещей хорошо подходит для ношение каждый в повседневной жизни и более официальный мероприятия.
Кожаные куртки-бомберы и просмотр багаж
выбор магазина также состоит из кожаных курток-бомберов, идеально подходит для соревнований или снаружи прогулки. Покупка багаж не будет отправиться вам безразличны возможно, просто потому, что они вырастут незаменимым аксессуаром для путешествия или повседневного использования.
Кружки и прочее компоненты
Этот магазин также предоставляет ряд других дополнения например печатные кружки, леггинсы, флаги, Побережье багаж и многое другое. Вы можете найти все вы должны сделать самый лучший визуальные средства вашей повседневной жизни.
Земля принтов и хлопковых толстовок
В магазине есть разнообразие отличных принтов, которые можно найти на худи и свитшоты. Хлопковые толстовки и футболки высшего качества и просты в уходе. Принты на материале появляются ослепительный и уникальный, впечатляющий и классный.
Резюме
С самыми лучшими товарами держат, вы найдешь каждую мелочь вы захотите к сделать отлично легкая атлетика или расслабленный выглядит. Там вы можете купить качество предметы которое будет прошедшее довольно долго, представлен в очень большой выбор и с многими печатает на года. Хорошее качество, цены реализации и выгода - вы получаете все и многое другое!
Женская одежда Таргетолог - купить в интернет магазине MerchPrint/

Одежда для девочек Тёмный дворецкий - купить в интернет магазине MerchPrint 40da0b8




@wwer=
Andrewjn
1 мая 2023 г. 22:28
Если у вас ранее были запущены маркетинговые кампании в Директ или Ads, кроме этого посмотрите данные и по ним. Используются данные с наибольших платформ медиабаинга. Важным является тот факт, что официально сетевой маркетинг в России до сих пор не узаконен, то есть в отличии от других стран, у нас нет никаких законов, регулирующих работу компаний данной индустрии. Но, специалисты предполагают, что в недалеком будущем использование сети как одного из главных маркетинговых инструментов, станет в России обыденным явлением. На сегодняшний день возможно утверждать, что во всех развитых государствах Интернет давно прекратил считаться специфической маркетинговой средой, в то время как в России наоборот - еще далеко не все бизнесмены рассматривают его как важный и эффективный инструмент для развития бизнеса, что обуславливает неготовность рисковать и вкладывать в это деньги. На базе всего возможно сделать вывод в пользу того, что быстро растущая аудитория сети Интернет может представлять область повышенного интереса для большинства рекламодателей. По окончании того, как он нажмёт «Начать», компания приобретает разрешение отправлять ему информационные и рекламные сообщения. Также он оказывает помощь выстроить доверительные отношения с клиентами, повысить их лояльность к бренду и убедиться в экспертности. Исходя из этого, не следует упускать возможность поддерживать лояльность ваших пользователей и на этих площадках.|Как использовать Спинтакс в статьях Wiki для увеличения трафика на сайте
обратные ссылки блог


пресс-релиз backlinks b88ece4
p@11=777


Вы должны войти под своим аккаунтом чтобы оставлять комментарии