{"id":1336,"date":"2015-09-09T10:45:29","date_gmt":"2015-09-09T08:45:29","guid":{"rendered":"http:\/\/blog.rabahi.net\/?page_id=1336"},"modified":"2017-05-10T17:15:51","modified_gmt":"2017-05-10T15:15:51","slug":"java-date","status":"publish","type":"page","link":"https:\/\/blog.rabahi.net\/?page_id=1336","title":{"rendered":"Java &#8211; Date"},"content":{"rendered":"<p>Important : require java 1.8 or greater to use LocalDate.<\/p>\n<div id=\"toc_container\" class=\"no_bullets\"><p class=\"toc_title\">Contents<\/p><ul class=\"toc_list\"><li><a href=\"#Difference_beetween_two_dates\"><span class=\"toc_number toc_depth_1\">1<\/span> Difference beetween two dates<\/a><ul><li><a href=\"#Diff_in_NanoSeconds\"><span class=\"toc_number toc_depth_2\">1.1<\/span> Diff in NanoSeconds<\/a><\/li><li><a href=\"#Diff_in_MilliSeconds\"><span class=\"toc_number toc_depth_2\">1.2<\/span> Diff in MilliSeconds<\/a><\/li><li><a href=\"#Diff_in_Seconds\"><span class=\"toc_number toc_depth_2\">1.3<\/span> Diff in Seconds<\/a><\/li><li><a href=\"#Diff_in_Minutes\"><span class=\"toc_number toc_depth_2\">1.4<\/span> Diff in Minutes<\/a><\/li><li><a href=\"#Diff_in_Hours\"><span class=\"toc_number toc_depth_2\">1.5<\/span> Diff in Hours<\/a><\/li><li><a href=\"#Diff_in_Days\"><span class=\"toc_number toc_depth_2\">1.6<\/span> Diff in Days<\/a><\/li><li><a href=\"#Diff_in_Months\"><span class=\"toc_number toc_depth_2\">1.7<\/span> Diff in Months<\/a><\/li><li><a href=\"#Diff_in_Years\"><span class=\"toc_number toc_depth_2\">1.8<\/span> Diff in Years<\/a><\/li><\/ul><\/li><li><a href=\"#Convert\"><span class=\"toc_number toc_depth_1\">2<\/span> Convert<\/a><ul><li><a href=\"#Convert_String_to_LocalDate\"><span class=\"toc_number toc_depth_2\">2.1<\/span> Convert String to LocalDate<\/a><\/li><li><a href=\"#Convert_LocalDate_to_String\"><span class=\"toc_number toc_depth_2\">2.2<\/span> Convert LocalDate to String<\/a><\/li><\/ul><\/li><li><a href=\"#Date_check\"><span class=\"toc_number toc_depth_1\">3<\/span> Date check<\/a><ul><li><a href=\"#Check_if_date1_is_after_date2\"><span class=\"toc_number toc_depth_2\">3.1<\/span> Check if date1 is after date2<\/a><\/li><li><a href=\"#Check_if_date1_is_before_date2\"><span class=\"toc_number toc_depth_2\">3.2<\/span> Check if date1 is before date2<\/a><\/li><li><a href=\"#Check_if_date_is_leap_year\"><span class=\"toc_number toc_depth_2\">3.3<\/span> Check if date is leap year<\/a><\/li><\/ul><\/li><li><a href=\"#Operations\"><span class=\"toc_number toc_depth_1\">4<\/span> Operations<\/a><ul><li><a href=\"#Add_days\"><span class=\"toc_number toc_depth_2\">4.1<\/span> Add days<\/a><\/li><li><a href=\"#Add_months\"><span class=\"toc_number toc_depth_2\">4.2<\/span> Add months<\/a><\/li><li><a href=\"#Add_weeks\"><span class=\"toc_number toc_depth_2\">4.3<\/span> Add weeks<\/a><\/li><li><a href=\"#Add_years\"><span class=\"toc_number toc_depth_2\">4.4<\/span> Add years<\/a><\/li><\/ul><\/li><li><a href=\"#Zone\"><span class=\"toc_number toc_depth_1\">5<\/span> Zone<\/a><ul><li><a href=\"#Current_zone\"><span class=\"toc_number toc_depth_2\">5.1<\/span> Current zone<\/a><\/li><li><a href=\"#List_all_available_zones\"><span class=\"toc_number toc_depth_2\">5.2<\/span> List all available zones<\/a><\/li><\/ul><\/li><\/ul><\/div>\n<h1><span id=\"Difference_beetween_two_dates\">Difference beetween two dates<\/span><\/h1>\n<h2><span id=\"Diff_in_NanoSeconds\">Diff in NanoSeconds<\/span><\/h2>\n<pre lang=\"java\">\r\nlong duration  = endDate.toEpochDay() - startDate.toEpochDay();\r\nlong diff = Duration.ofMillis(duration).toNanos();\r\n<\/pre>\n<h2><span id=\"Diff_in_MilliSeconds\">Diff in MilliSeconds<\/span><\/h2>\n<pre lang=\"java\">\r\nlong diff = endDate.toEpochDay() - startDate.toEpochDay();\r\n<\/pre>\n<h2><span id=\"Diff_in_Seconds\">Diff in Seconds<\/span><\/h2>\n<pre lang=\"java\">\r\nlong duration  = endDate.toEpochDay() - startDate.toEpochDay();\r\nlong diff = Duration.ofMillis(duration).getSeconds();\r\n<\/pre>\n<h2><span id=\"Diff_in_Minutes\">Diff in Minutes<\/span><\/h2>\n<pre lang=\"java\">\r\nlong duration  = endDate.toEpochDay() - startDate.toEpochDay();\r\nlong diff = Duration.ofMillis(duration).toMinutes();\r\n<\/pre>\n<h2><span id=\"Diff_in_Hours\">Diff in Hours<\/span><\/h2>\n<pre lang=\"java\">\r\nlong duration  = endDate.toEpochDay() - startDate.toEpochDay();\r\nlong diff = Duration.ofMillis(duration).toHours();\r\n<\/pre>\n<h2><span id=\"Diff_in_Days\">Diff in Days<\/span><\/h2>\n<pre lang=\"java\">\r\nlong diff = ChronoUnit.DAYS.between(startDate, endDate);\r\n<\/pre>\n<h2><span id=\"Diff_in_Months\">Diff in Months<\/span><\/h2>\n<pre lang=\"java\">\r\nlong diff = ChronoUnit.MONTHS.between(startDate, endDate);\r\n<\/pre>\n<h2><span id=\"Diff_in_Years\">Diff in Years<\/span><\/h2>\n<pre lang=\"java\">\r\nlong diff = ChronoUnit.YEARS.between(startDate, endDate);\r\n<\/pre>\n<h1><span id=\"Convert\">Convert<\/span><\/h1>\n<h2><span id=\"Convert_String_to_LocalDate\">Convert String to LocalDate<\/span><\/h2>\n<pre lang=\"java\">\r\n\/\/ init stringDate and pattern\r\nString stringDate = \"16-08-1979 10:35:00\";\r\nString pattern = \"dd-M-yyyy hh:mm:ss\";\r\n\r\n\/\/ convert to LocalDate\r\nDateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);\r\nLocalDate localDate = LocalDate.parse(stringDate ,dtf);\r\n<\/pre>\n<h2><span id=\"Convert_LocalDate_to_String\">Convert LocalDate to String<\/span><\/h2>\n<pre lang=\"java\">\r\n\/\/ get current localdate using current zone\r\nLocalDate localDate = LocalDate.now();\r\n\r\n\/\/ set pattern\r\nString pattern = \"dd-M-yyyy hh:mm:ss\";\r\n\r\n\/\/ convert to String\r\nDateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);\r\nString stringDate = localDate.format(dtf);\r\n<\/pre>\n<h1><span id=\"Date_check\">Date check<\/span><\/h1>\n<h2><span id=\"Check_if_date1_is_after_date2\">Check if date1 is after date2<\/span><\/h2>\n<pre lang=\"java\">\r\nboolean result = date1.isAfter(date2);\r\n<\/pre>\n<h2><span id=\"Check_if_date1_is_before_date2\">Check if date1 is before date2<\/span><\/h2>\n<pre lang=\"java\">\r\nboolean result = date1.isBefore(date2);\r\n<\/pre>\n<h2><span id=\"Check_if_date_is_leap_year\">Check if date is leap year<\/span><\/h2>\n<pre lang=\"java\">\r\nboolean result = date.isLeapYear();\r\n<\/pre>\n<h1><span id=\"Operations\">Operations<\/span><\/h1>\n<h2><span id=\"Add_days\">Add days<\/span><\/h2>\n<pre lang=\"java\">\r\nlong daysToAdd = 5;\r\nLocalDate dateUpdated = date.plusDays(daysToAdd);\r\n<\/pre>\n<h2><span id=\"Add_months\">Add months<\/span><\/h2>\n<pre lang=\"java\">\r\nlong monthsToAdd = 2;\r\nLocalDate dateUpdated = date.plusMonths(monthsToAdd);\r\n<\/pre>\n<h2><span id=\"Add_weeks\">Add weeks<\/span><\/h2>\n<pre lang=\"java\">\r\nlong weeksToAdd = 2;\r\nLocalDate dateUpdated = date.plusWeeks(weeksToAdd);\r\n<\/pre>\n<h2><span id=\"Add_years\">Add years<\/span><\/h2>\n<pre lang=\"java\">\r\nlong yearsToAdd = 2;\r\nLocalDate dateUpdated = date.plusWeeks(yearsToAdd);\r\n<\/pre>\n<h1><span id=\"Zone\">Zone<\/span><\/h1>\n<h2><span id=\"Current_zone\">Current zone<\/span><\/h2>\n<pre lang=\"java\">\r\nZoneId.systemDefault().getId();\r\n<\/pre>\n<h2><span id=\"List_all_available_zones\">List all available zones<\/span><\/h2>\n<pre lang=\"java\">\r\n\/\/ init result map.\r\n\/\/ example \"Europe\/London\" => \"UTC+01:00\"\r\nMap<String,String> result = new LinkedHashMap<>();\r\n\r\n\/\/ get all zoneIds and add them in an ArrayList\r\nList<String> zoneIds = new ArrayList<>(ZoneId.getAvailableZoneIds());    \t\r\n\r\nMap<String,String> mapNotOrdred = new HashMap<>();\r\nLocalDateTime dt = LocalDateTime.now();\r\nfor(String zoneId : zoneIds) {\r\n\tZoneId zone = ZoneId.of(zoneId);\r\n\tZonedDateTime zdt = dt.atZone(zone);\r\n\tZoneOffset zos = zdt.getOffset();\r\n\tmapNotOrdred.put(zoneId,zos.getId().replaceAll(\"Z\", \"+00:00\"));\r\n}\r\n\r\n\/\/sort by value, descending order\r\nmapNotOrdred.entrySet().stream()\r\n.sorted(Map.Entry.<String, String>comparingByValue().reversed())\r\n.forEachOrdered(e -> result.put(e.getKey(), e.getValue()));\r\n\r\n\/\/ now result map contains all 'zoneIds'=>'UTC' sorted by decending UTC\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Important : require java 1.8 or greater to use LocalDate. Contents1 Difference beetween two dates1.1 Diff in NanoSeconds1.2 Diff in MilliSeconds1.3 Diff in Seconds1.4 Diff in Minutes1.5 Diff in Hours1.6 Diff in Days1.7 Diff in Months1.8 Diff in Years2 Convert2.1 Convert String to LocalDate2.2 Convert LocalDate to String3 Date check3.1 Check if date1 is after [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1538,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1336","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1336","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1336"}],"version-history":[{"count":15,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1336\/revisions"}],"predecessor-version":[{"id":1934,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1336\/revisions\/1934"}],"up":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1538"}],"wp:attachment":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1336"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}