10 Nisan 2018 Salı

DateTimeFormatter Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.time.format.DateTimeFormatter;
parse işlemi
1. Bu sınıfın kendi parse metodu kullanılabilir
2. Bu sınıfın nesnesi LocalDate.parse(), ZonedDateTime.parse () metoduna parametre olarak geçilebilir.

format işlemi
1. Bu sınıfın kendi format metodu kullanılabilir
2. Bu sınıfın nenesi LocateDateTime.format(), LocateDate.format() metoduna parametre olarak geçilebilir.


Sabitler
a - am veya pm

d - date
Gün

M - month
Ay

y - year
Yıl : u ile farkını bilmiyorum

Y - year
Yıl : week-base year.

u - year
Yıl : y ile farkını bilmiyorum.

s - saniye
Açıklaması şöyle.
s second-of-minute number
S - milisaniye, microsaniye, nanosaniye
Açıklaması şöyle. Milisaniye 3 hanelidir.
S fraction-of-second fraction
'T'
String içindeli T alanını temsil eder. Şöyle yaparız.
DateTimeFormatter inputFormatter = DateTimeFormatter
  .ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH);
DateTimeFormatter outputFormatter = DateTimeFormatter
  .ofPattern("dd-MM-yyy", Locale.ENGLISH);
LocalDate date = LocalDate.parse("2018-04-10T04:00:00.000Z", inputFormatter);
String formattedDate = outputFormatter.format(date);
System.out.println(formattedDate); // prints 10-04-2018
w - week
Hafta sayısı

constructor
Örnek
Şöyle yaparız.
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
                                    .appendPattern("YYYYww")
                                    .parseDefaulting(WeekFields.ISO.dayOfWeek(), 1)
                                    .toFormatter();
LocalDate parse = LocalDate.parse("201803", formatter);
Çıktı olarak şunu alırız.
2018-01-15
format metodu - TemporalAccessor
Parametre olarak TemporalAccessor tipi alır. Yani DayOfWeek, HijrahDate, HijrahEra, Instant, IsoEra, JapaneseDate, JapaneseEra, LocalDate, LocalDateTime, LocalTime, MinguoDate, MinguoEra, Month, MonthDay, OffsetDateTime, OffsetTime, ThaiBuddhistDate, ThaiBuddhistEra, Year, YearMonth, ZonedDateTime, ZoneOffset gibi bir sürü sınıfı formatlayabilir.

Örnek
Şöyle yaparız.
DateTimeFormatter inputFormatter = DateTimeFormatter
  .ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH);
DateTimeFormatter outputFormatter = DateTimeFormatter
  .ofPattern("dd-MM-yyy", Locale.ENGLISH);
LocalDate date = LocalDate.parse("2018-04-10T04:00:00.000Z", inputFormatter);
String formattedDate = outputFormatter.format(date);
System.out.println(formattedDate); // prints 10-04-2018
ISO_LOCAL_DATE_TIME Alanı
Şu formatta çıktı verir
yyyy-MM-ddThh:mm:ss.SSS
Şöyle yaparız.
long time = System.currentTimeMillis();
ISO_LOCAL_DATE_TIME.format(Instant.ofEpochMilli(time).atZone(ZoneOffset.UTC))
Çıktı olarak şunu alırız.
// "2017-03-07T12:09:04.374"
ofPattern metodu - String
Örnek
Şöyle yaparız.
DateTimeFormatter fmt= DateTimeFormatter.ofPattern("dd/MM/yyyy");
Örnek
Şöyle yaparız.
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
Örnek
Şöyle yaparız
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm a");
LocalTime localTime = LocalTime.parse("10:45 pm", formatter);
ofPattern metodu - String + Locale
Şöyle yaparız.
DateTimeFormatter inputFormatter = DateTimeFormatter
  .ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH);
parse metodu - String + TemporalQuery
TemporalAccessor tipi döner. Yani DayOfWeek, HijrahDate, HijrahEra, Instant, IsoEra, JapaneseDate, JapaneseEra, LocalDate, LocalDateTime, LocalTime, MinguoDate, MinguoEra, Month, MonthDay, OffsetDateTime, OffsetTime, ThaiBuddhistDate, ThaiBuddhistEra, Year, YearMonth, ZonedDateTime, ZoneOffset gibi bir sürü sınıfı parse edebilir.

Örnek
Şöyle yaparız.
ZonedDateTime zdt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss‌​.SSSZ").
  parse("2015-‌​01-12T05:00:00.000+0‌​000", ZonedDateTime::from);
Örnek
Elimzde şu değerler olsun.
String format = "uuuuMM";
String value = "201712";
Şöyle yaparız.
DateTimeFormatter.ofPattern(format).withResolverStyle(ResolverStyle.STRICT)
    .parse(value, YearMonth::from);
withResolverStyle metodu
Şöyle yaparız.
DateTimeFormatter fmt = ...;
DateTimeFormatter fmt = fmt.withResolverStyle (ResolverStyle.STRICT);
withZone metodu
Şöyle yaparız.
ZoneId zoneID = ...;
DateTimeFormatter fmt = ...;
DateTimeFormatter fmt = fmt.withZone(zoneID);

Hiç yorum yok:

Yorum Gönder