YouTip LogoYouTip

Java Localdatetime Class

LocalDateTime is an important class introduced in Java 8's date and time API (java.time package). It represents an immutable date-time object without timezone information. This class can store date and time information at the year, month, day, hour, minute, second, and nanosecond levels. ### Features of LocalDateTime 1. **Immutability**: All java.time classes are immutable and thread-safe 2. **No Timezone**: Only represents local date and time 3. **Precision to Nanoseconds**: Can represent time precise to nanosecond level 4. **Rich API**: Provides extensive methods for date-time calculation and formatting * * * ## Creating LocalDateTime Objects ### 1. Using Static Factory Methods ## Example // Get current date and time LocalDateTime now = LocalDateTime.now(); // Create with specified date and time LocalDateTime specificDateTime = LocalDateTime.of(2023, 5, 15, 14, 30, 45); // Use year, month, day, hour, minute LocalDateTime dateTime1 = LocalDateTime.of(2023, Month.MAY, 15, 14, 30); // Use year, month, day, hour, minute, second LocalDateTime dateTime2 = LocalDateTime.of(2023, 5, 15, 14, 30, 45); // Use year, month, day, hour, minute, second, nanosecond LocalDateTime dateTime3 = LocalDateTime.of(2023, 5, 15, 14, 30, 45, 100); ### 2. Combining from LocalDate and LocalTime ## Example LocalDate date = LocalDate.of(2023, 5, 15); LocalTime time = LocalTime.of(14, 30, 45); LocalDateTime dateTime = LocalDateTime.of(date, time); ### 3. Parsing from String ## Example LocalDateTime parsedDateTime = LocalDateTime.parse("2023-05-15T14:30:45"); * * * ## Common Operations ### Getting Date-Time Components ## Example LocalDateTime dateTime = LocalDateTime.now(); int year = dateTime.getYear(); Month month = dateTime.getMonth();// Returns Month enum int monthValue = dateTime.getMonthValue();// Returns 1-12 int day = dateTime.getDayOfMonth(); int hour = dateTime.getHour(); int minute = dateTime.getMinute(); int second = dateTime.getSecond(); int nano = dateTime.getNano(); ### Date-Time Calculations ## Example LocalDateTime dateTime = LocalDateTime.now(); // Plus operations LocalDateTime plusYears = dateTime.plusYears(1); LocalDateTime plusMonths = dateTime.plusMonths(1); LocalDateTime plusDays = dateTime.plusDays(1); LocalDateTime plusHours = dateTime.plusHours(1); LocalDateTime plusMinutes = dateTime.plusMinutes(1); LocalDateTime plusSeconds = dateTime.plusSeconds(1); // Minus operations LocalDateTime minusYears = dateTime.minusYears(1); LocalDateTime minusDays = dateTime.minusDays(1); // Other minus operations are similar... ### Date-Time Comparison ## Example LocalDateTime dateTime1 = LocalDateTime.of(2023, 5, 15, 14, 30); LocalDateTime dateTime2 = LocalDateTime.of(2023, 5, 16, 14, 30); boolean isBefore = dateTime1.isBefore(dateTime2);// true boolean isAfter = dateTime1.isAfter(dateTime2);// false boolean isEqual = dateTime1.isEqual(dateTime2);// false ### Adjusting Date-Time ## Example LocalDateTime dateTime = LocalDateTime.now(); // Modify specific fields LocalDateTime withYear = dateTime.withYear(2024); LocalDateTime withHour = dateTime.withHour(15); // Other fields are similar... // Using TemporalAdjusters LocalDateTime firstDayOfMonth = dateTime.with(TemporalAdjusters.firstDayOfMonth()); LocalDateTime lastDayOfYear = dateTime.with(TemporalAdjusters.lastDayOfYear()); * * * ## Formatting and Parsing ### Formatting Date-Time ## Example LocalDateTime dateTime = LocalDateTime.now(); // Using predefined format DateTimeFormatter isoDateTime = DateTimeFormatter.ISO_DATE_TIME; String formatted = dateTime.format(isoDateTime); // Custom format DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String customFormatted = dateTime.format(formatter); ### Parsing String to Date-Time ## Example String str ="2023-05-15 14:30:45"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime parsedDateTime = LocalDateTime.parse(str, formatter); * * * ## Conversion with Other Date-Time Classes ### Converting to LocalDate and LocalTime ## Example LocalDateTime dateTime = LocalDateTime.now(); LocalDate date = dateTime.toLocalDate(); LocalTime time = dateTime.toLocalTime(); ### Conversion with Instant and ZonedDateTime ## Example // Requires timezone information ZoneId zone = ZoneId.systemDefault(); // LocalDateTime to ZonedDateTime ZonedDateTime zonedDateTime = dateTime.atZone(zone); // ZonedDateTime to LocalDateTime LocalDateTime fromZoned = zonedDateTime.toLocalDateTime(); // LocalDateTime to Instant Instant instant = zonedDateTime.toInstant(); // Instant to LocalDateTime LocalDateTime fromInstant = LocalDateTime.ofInstant(instant, zone); * * * ## Practical Application Examples ### Calculating Interval Between Two Date-Times ## Example LocalDateTime start = LocalDateTime.of(2023, 5, 15, 9, 0); LocalDateTime end = LocalDateTime.of(2023, 5, 16, 17, 30); Duration duration = Duration.between(start, end); long hours = duration.toHours();// 32 long minutes = duration.toMinutes();// 1950 ### Checking if Date is Within a Specific Range ## Example LocalDateTime checkDate = LocalDateTime.of(2023, 5, 15, 14, 0); LocalDateTime startDate = LocalDateTime.of(2023, 5, 1, 0, 0); LocalDateTime endDate = LocalDateTime.of(2023, 5, 31, 23, 59); boolean isInRange =!checkDate.isBefore(startDate)&&!checkDate.isAfter(endDate); ### Generating Date-Time Sequence ## Example LocalDateTime start = LocalDateTime.of(2023,
← Java Localtime ClassJava Gregoriancalendar Class β†’