Menu
CoddyTech

LocalDateTime Kullanımı

Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 56 / 59.

Java'daki LocalDateTime, tarih ve saati bir araya getirir. Etkinlik programları veya zaman damgaları gibi her iki bileşenle de çalışmanız gerektiğinde kullanışlıdır.

Geçerli tarih ve saati oluştur

LocalDateTime now = LocalDateTime.now();

Belirli bir tarih ve saat oluşturun:

LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
// 2024-03-15 14:30

Yukarıdaki kodu çalıştırdıktan sonra, dateTime şunu içerir:

2024-03-15T14:30

Bir tarih ve saati biçimlendirin:

LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));

Aynı desenle bir String'den tarih ve saat ayrıştırın:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime parsed = LocalDateTime.parse("2024-03-15 14:30", formatter);  // 2024-03-15T14:30

Biçimlendirici olmadan LocalDateTime.parse() yalnızca ISO biçimini, yani 2024-03-15T14:30 değerini kabul eder. Desene uymayan bir dize DateTimeParseException hatası fırlatır; bu nedenle çağrıyı LocalDate.parse() ile yaptığın gibi try-catch içine al.

challenge icon

Görev

Kolay

Dört argüman alan processDateTime adlı bir metot oluştur:

  1. "yyyy-MM-dd HH:mm" biçiminde bir String (dateTimeStr)
  2. Eklenecek veya çıkarılacak bir tam sayı (amount)
  3. "hours", "days" veya "months" değerlerinden biri olan bir String (unit)
  4. "add" veya "subtract" değerlerinden biri olan bir String (operation)

Metot şunları yapmalıdır:

  1. Girdi tarih-saat dizesini ayrıştırmak
  2. Belirtilen işlemi gerçekleştirmek
  3. Sonuç hakkında biçimlendirilmiş bilgi döndürmek

Döndürülecek mesajlar şunlar olmalıdır:

  • Biçim geçersizse: "Invalid date time format" döndür
  • Birim geçersizse: "Invalid unit" döndür
  • İşlem geçersizse: "Invalid operation" döndür
  • Başarılıysa: "Original: [datetime], New: [new_datetime], Day: [day_name]" döndür; her iki tarih-saat de yyyy-MM-dd HH:mm biçiminde yazılmalı ve [day_name], yeni tarih-saatin haftanın gününün büyük harflerle yazılmış hâli olmalıdır (ör. FRIDAY)

Kendin dene

import java.util.Scanner;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class Main {
    public static String processDateTime(String dateTimeStr, int amount, String unit, String operation) {
        // Kodunuzu buraya yazın
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String dateTimeStr = scanner.nextLine();
        int amount = Integer.parseInt(scanner.nextLine());
        String unit = scanner.nextLine();
        String operation = scanner.nextLine();
        
        System.out.println(processDateTime(dateTimeStr, amount, unit, operation));
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Java derleyicisi