21 Kasım 2019 Perşembe

Lang3 FastDateFormat Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.apache.commons.lang3.time.FastDateFormat;
Açıklaması şöyle.
FastDateFormat is a fast and thread-safe version of SimpleDateFormat.
Kullanım
getInstance() metodu ile istenilen pattern'a sahip nesne elde edilir. Daha sonra format() metodu çağrılır.

Eğer yerel zaman dilimini değil de başka bir zaman dilimini kullanmak istersek getInstance() metoduna TimeZone parametresi geçeriz.

format metodu - Date
Şöyle yaparız
Date date = ...;
String str = fastFormat.format(date);
format metodu - long
Örnek ver

getInstance metodu - pattern
Örnek
Şöyle yaparız.
String OUTPUT_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";
// apache commons lang3 FastDateFormat is threadsafe
FastDateFormat fastFormat = FastDateFormat.getInstance(OUTPUT_TIME_FORMAT);
getInstance metodu - pattern + TimeZone
Örnek
Şöyle yaparız.
FastDateFormat fdf = FastDateFormat.getInstance(PATTERN, TimeZone.getTimeZone("UTC"));
Örnek
Elimizde şöyle bir kod olsun.
private static final String PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
Şöyle yaparız
FastDateFormat fdf = FastDateFormat.getInstance(PATTERN, TimeZone.getTimeZone("UTC"));

7 Kasım 2019 Perşembe

DurationFormatUtils Sınıfı

Giriş
Bu sınıf ile year formatlamak mümkün değil. Açıklaması şöyle.
This method formats durations using the days and lower fields of the format pattern. Months and larger are not used.
Elimizde şöyle bir kod olsun
return DurationFormatUtils.formatDuration(2034430000000L, yyyy-MM-dd_HH:mm:ss.SSS)
Çıktı olarak şunu alırız.
0000-00-23546_15:26:40.000
formatDuration metodu - milisaniye + format
Sol tarafı 0 ile padler. Eğer girdi olarak 1 verirsek çıktı olarak 01 verir.
Örnek
Şöyle yaparız.
DurationFormatUtils.formatDuration(millis,"HHH+mm"));
Örnek
Şöyle yaparız.
String str = DurationFormatUtils.formatDuration(12313152,
  DurationFormatUtils.ISO_EXTENDED_FORMAT_PATTERN);
// otherFormattedDuration value is "P0000Y0M0DT3H25M13.152S"
formatDuration metodu - milisaniye + format + boolean
boolean padWithZeros anlamına gelir.Örnek ver

formatDurationHMS metodu - milisaniye
Şöyle yaparız.
String formattedDuration = DurationFormatUtils.formatDurationHMS(12313152);
// formattedDuration value is "3:25:13.152"
formatDurationWords metodu
Boş alanları atlamak için true, true olarak çağrılır.

formatPeriod metodu
Örnek
Açıklaması şöyle.
It would appear that they base their formatting on the SimpleDateFormatter and the escape character there is '
Şöyle yaparız.
String str = DurationFormatUtils.formatPeriod(
                        date1.getTime(),
                        date2..getTime(),
                        "d 'days' H 'hours' left"));

CSVRecord Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVRecord;
CSV dosyasındaki bir satırı temsil eder. Sadece okuma amaçlıdır.

constructor
Şöyle yaparız
CSVFormat csvFormat = CSVFormat.DEFAULT.withHeader();
try (CSVParser csvParser = csvFormat.parse(Files.newBufferedReader(Paths.get("...")))) {
  for (CSVRecord csvRecord : csvParser) {
    ...
  }
}
get metodu
Şöyle yaparız
Reader in = new FileReader("przedmioty.csv");
Iterable<CSVRecord> records = CSVFormat.DEFAULT
  .withHeader("Name", "Teacher", "Years")
  .withIgnoreHeaderCase()
  .withTrim()
  .parse(in);
for (CSVRecord csvRecord : records) {
  String name = csvRecord.get(0);
  //Accessing the values by column header name
  String Teacher = csvRecord.get(1);
  String years = csvRecord.get(2);

  // Printing the record
  System.out.println("Record Number - " + csvRecord.getRecordNumber());
  System.out.println("Name: " + name);
  System.out.println("Teacher: " + Teacher);
  System.out.print("Years : " + years);
  System.out.println("\n\n");
}
size metodu
Şöyle yaparız.
public static String[] toArray(CSVRecord rec) {
  String[] arr = new String[rec.size()];
  int i = 0;
  for (String str : rec) {
    arr[i++] = str;
  }
  return arr;
}
toMap metodu
Şöyle yaparız.
Map<String, String> map = csvRecord.toMap();