27 Şubat 2020 Perşembe

LocalDate Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.time.LocalDate;
Açıklaması şöyle.
LocalDate holds only the date part without a time-zone in the ISO-8601 calendar system.
- Sadece tarihi bilir. Saati ve zaman dilimini bilmez. Yani 2015-01-01 gibi bir değer gösterir.
- Saat bilmediği için 2015-01-01 12:00:00 gibi bir değer gösteremez.

Kullanım
of metodunu kullanırken rakam yerine enum kullanmak daha iyi
Örnek
Şöyle yaparız
LocalDate.now();                      // 2022-10-06
LocalDate.of(2022, Month.JANUARY, 1); // 2022-01-01
LocalDate.of(2022, 1, 1);             // 2022-01-01
LocalDate.of(1,9,32);                 // Error

datesUntil metodu
Java 9 ile geliyor. İki LocalDate arasındaki farkı Stream olarak verir.
Örnek
Şöyle yaparız.
LocalDate preDate = ...;
LocalDate endExclusive = ...;
List<LocalDate> dateList 
            = preDate.datesUntil(endExclusive).collect(Collectors.toList());
System.out.println(dateList);
Çıktı olarak şunu alırız.
[2018-06-20, 2018-06-21]
Örnek
2020 yılında hafta için günleri bulmak için şöyle yaparız.
Set<DayOfWeek> weekend = EnumSet.of(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY);
LocalDate.of(2019, Month.JANUARY, 1)
  .datesUntil(LocalDate.of(2020, Month.DECEMBER, 31), Period.ofDays(1))
  .filter(x -> !weekend.contains(x.getDayOfWeek()))
  .forEachOrdered(System.out::println);
format metodu
Belirtilen formatta string'e çevirir.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
LocalDate date = ...;
System.out.println(date.format(formatter));
isAfter metodu
Şöyle yaparız
LocalDate date = LocalDate.of(2005, 1, 1); // Assign date
LocalDate today = LocalDate.now();
if(date.isAfter(today){...}
isBefore metodu
Şöyle yaparız
LocalDate date = LocalDate.of(2005, 1, 1); // Assign date
LocalDate today = LocalDate.now();
if(date.isBefore(today){...}
isLeapYear metodu
Açıklaması şöyle. Yıl = 0 için true döner.
It is equivalent to the proleptic Gregorian calendar system, in which today's rules for leap years are applied for all time. For most applications written today, the ISO-8601 rules are entirely suitable. However, any application that makes use of historical dates, and requires them to be accurate will find the ISO-8601 approach unsuitable.
Örnek ver

lenghtOfMonth metodu
Örnek ver

minusDays metodu
Örnek ver

minusYears
Belirtilen yılı çıkartır.
LocalDate dateToCheck = LocalDate.now().minusYears(20);
now metodu
Şimdiki zamanı verir.
LocalDate today = LocalDate.now();
Gerekirse zaman dilimi ile kullanılabilir.
LocalDate today = LocalDate.now( ZoneId.of( "America/Montreal" ) );
of metodu
Belirtilen zamana göre nesne oluşturur.
LocalDate date = LocalDate.of(2005, 1, 1);
parse metodu
DateTimeFormatter nesnesinde belirtilen formata göre parse eder

Örnek
Şöyle yaparız.
String str = "01/01/2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
LocalDate dateTime = LocalDate.parse(str, formatter);
Örnek
Şöyle yaparız.
String input = "05/30/2018" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM/dd/uuuu" ) ;
LocalDate ld = LocalDate.parse( input , f ) ;
plus metodu
LocalDate plus metodu Ptifall yazısına taşıdım.

plusDays metodu
Belirtilen günü ekler.
Örnek
Şöyle yaparız.
LocalDate dateToCheck = LocalDate.now().plusDays(1);
Örnek
Elimizde şöyle bir kod olsun.
LocalDate birthA = LocalDate.of(1965, Month.SEPTEMBER, 27);
LocalDate eventA = LocalDate.of(1992, Month.MAY, 9);
Şöyle yaparız.
LocalDate halfA = eventA.plusDays(ChronoUnit.DAYS.between(birthA, eventA));
plusMonths metodu
Belirtilen ayı ekler.
LocalDate localDate = LocalDate.now();
localDate.plusMonths(numberOfMonths);
plusYears metodu
LocalDate'i ileri götürmek çok kolay.
LocalDate.now().plusYears(1)
toString metodu
ISO 8601 formatında çıktı verir.
The output will be in the ISO-8601 format uuuu-MM-dd.
with metodu
Setter gibi düşünülmeli. Sadece belirtilen alana belirtilen değeri atar. Diğer alanlar değişmez.
Örnek
Şöyle yaparız.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yy");
LocalDate end = LocalDate.parse("30-09-20", formatter)
    .plusMonths(3)                             // add three months to your date
    .with(TemporalAdjusters.lastDayOfMonth()); // with the last day of the month
withDayOfMonth metodu
Setter gibi düşünülmeli. Sadece gün alanına belirtilen değeri atar. Diğer alanlar değişmez.

withMonth metodu
Setter gibi düşünülmeli. Sadece ay alanına belirtilen değeri atar. Diğer alanlar değişmez.











Hiç yorum yok:

Yorum Gönder