Menu
CoddyTech

Penggunaan LocalDateTime

Termasuk bagian Logika & Alur dalam perjalanan Java di Coddy. Pelajaran 56 dari 59.

LocalDateTime di Java menggabungkan tanggal dan waktu. Ini berguna saat kamu perlu bekerja dengan kedua komponen tersebut, seperti jadwal acara atau stempel waktu.

Buat tanggal dan waktu saat ini

LocalDateTime now = LocalDateTime.now();

Buat tanggal dan waktu tertentu:

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

Setelah menjalankan kode di atas, dateTime berisi:

2024-03-15T14:30

Format tanggal dan waktu:

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

Baca tanggal dan waktu dari String menggunakan pola yang sama:

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

Tanpa formatter, LocalDateTime.parse() hanya menerima format ISO 2024-03-15T14:30. String yang tidak cocok dengan pola akan memicu DateTimeParseException, jadi bungkus pemanggilan tersebut dengan try-catch seperti yang kamu lakukan pada LocalDate.parse().

challenge icon

Tantangan

Mudah

Buat method bernama processDateTime yang menerima empat argumen:

  1. String (dateTimeStr) dengan format "yyyy-MM-dd HH:mm"
  2. Bilangan bulat (amount) untuk ditambahkan atau dikurangkan
  3. String (unit) yang berupa "hours", "days", atau "months"
  4. String (operation) yang berupa "add" atau "subtract"

Method tersebut harus:

  1. Mem-parsing string tanggal dan waktu input
  2. Melakukan operasi yang ditentukan
  3. Mengembalikan informasi hasil dalam format tertentu

Pesan yang dikembalikan harus berupa:

  • Jika format tidak valid: kembalikan "Invalid date time format"
  • Jika unit tidak valid: kembalikan "Invalid unit"
  • Jika operasi tidak valid: kembalikan "Invalid operation"
  • Jika berhasil: kembalikan "Original: [datetime], New: [new_datetime], Day: [day_name]", dengan kedua tanggal dan waktu ditulis sebagai yyyy-MM-dd HH:mm dan [day_name] adalah nama hari dalam seminggu dari tanggal dan waktu baru dalam huruf kapital (misalnya FRIDAY)

Coba sendiri

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) {
        // Tulis kodemu di sini
    }
    
    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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Java online