import java.time.*;
import java.time.format.*;
import java.time.temporal.*;
public class DateTimeUtils {
// Get current date
public static LocalDate getCurrentDate() {
return LocalDate.now();
}
// Get current time
public static LocalTime getCurrentTime() {
return LocalTime.now();
}
// Get current date-time
public static LocalDateTime getCurrentDateTime() {
return LocalDateTime.now();
}
// Create date
public static LocalDate createDate(int year, int month, int day) {
return LocalDate.of(year, month, day);
}
// Create time
public static LocalTime createTime(int hour, int minute) {
return LocalTime.of(hour, minute);
}
// Parse date from string
public static LocalDate parseDate(String dateStr) {
return LocalDate.parse(dateStr);
}
// Format date to string
public static String formatDate(LocalDate date, String pattern) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return date.format(formatter);
}
// Add days
public static LocalDate addDays(LocalDate date, long days) {
return date.plusDays(days);
}
// Calculate difference in days
public static long daysBetween(LocalDate date1, LocalDate date2) {
return ChronoUnit.DAYS.between(date1, date2);
}
// Get start of day
public static LocalDateTime startOfDay(LocalDate date) {
return date.atStartOfDay();
}
// Convert to Instant
public static Instant toInstant(LocalDateTime dateTime, ZoneId zoneId) {
return dateTime.atZone(zoneId).toInstant();
}
// Get duration between times
public static Duration durationBetween(LocalTime time1, LocalTime time2) {
return Duration.between(time1, time2);
}
}