Core java_Datetime API

  private static void currentDate() {

        // Using Java 7 (java.util.date) -> Fri Jun 16 12:51:35 IST 2023
        Date date = new Date();
        System.out.println(date);
       
        // Formatted date -> 16/06/2023
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        String currentDate = formatter.format(date);
        System.out.println(currentDate);

        // Using Java 8 -> 16/06/23:14/06/23
        String localCurrentDate = LocalDate.now().format(DateTimeFormatter.ofPattern("dd/MM/yy"));
        String localMinusDate = LocalDate.now().minusDays(2).format(DateTimeFormatter.ofPattern("dd/MM/yy"));
        System.out.println(localCurrentDate + ":" + localMinusDate);

        // Current time in 24 Hrs format -> 14:55:10
  System.out.println(LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss")));

        // java.sql.Date -> 2023-06-16
        java.sql.Date currentSqlDate = new java.sql.Date(System.currentTimeMillis());
        System.out.println("currentSqlDate:" + currentSqlDate);

        // Timestamp -> 2023-06-16 12:52:13.892
        Timestamp timestamp = new Timestamp(new Date().getTime());
        System.out.println(timestamp);
    }

// Date format conversion
// Fri Sep 30 16:14:07 IST 2022 -> Fri Sep 30 00:00:00 IST 2022
// getStartDateOfDay(new Date())
    public static Date getStartDateOfDay(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTime();
    }


// Fri Sep 30 16:15:01 IST 2022 -> Fri Sep 30 23:59:59 IST 2022
// getEndDateTimeOfDay(new Date())
public static Date getEndDateTimeOfDay(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    calendar.set(Calendar.HOUR_OF_DAY, 23);
    calendar.set(Calendar.MINUTE, 59);
    calendar.set(Calendar.SECOND, 59);
    calendar.set(Calendar.MILLISECOND, 0);
    return calendar.getTime();
}

// Convert 1696145519957L -> 2023-10-01 13:01:59
public static void convertLongToDateFormat() {
 long milliSeconds = 1696145519957L;

 Calendar calendar = Calendar.getInstance();
 calendar.setTimeInMillis(milliSeconds);
 SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 String formatted = format1.format(calendar.getTime());
 System.out.println(formatted); // 2023-10-01 13:01:59

}

// 16/11/2022 -> 2022-11-16
private static void dateFormatConversion(){
    String excelTime = "16/11/2022";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
    DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    String datetime = LocalDate.parse(excelTime, formatter).format(formatter2);
    System.out.println(datetime);
}


// Current time in long format => 1700461801329
>> Timestamp.valueOf(LocalDateTime.now()).getTime()
>> String.valueOf(new Date().getTime()) {Convert to string}


// Convert 2023-09-14T06:30:00+05:30 -> 2023-09-14 06:30:00
    String promiseDate = "2023-09-14T06:30:00+05:30"; // Output: 2023-09-14 06:30:00
    String fromDatePattern = "yyyy-MM-dd'T'HH:mm:ss";
    String toDatePattern = "yyyy-MM-dd HH:mm:ss";
    parseStringDateIntoPattern(promiseDate, fromDatePattern,toDatePattern);
public static String parseStringDateIntoPattern(String date, String fromPattern, String toPattern) throws ParseException {
    Date fromDateFormat = new SimpleDateFormat(fromPattern).parse(date);
    SimpleDateFormat toDateFormat = new SimpleDateFormat(toPattern);
    return toDateFormat.format(fromDateFormat);
}