Java 8 introduced the
Date&Time API, with it we had a newer and simpler way to work with dates, times in Java much better than old
java.util.Calendar classes. When it comes to dates and times two of the more common tasks are parsing an String to a Date-Time and formatting a Date into a String. This article is focused on those actions.
Date/Time to String
When we require to generate the String representation of a Date we need to use the
format method of the
Date/Time instance. This method receives a
DateTimeFormatter instance where we can indicate the output format of the date.
import java.time.format.DateTimeFormatter; import java.time.LocalDateTime; LocalDateTime datetime = LocalDateTime.now(); String newstring = datetime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
It doesn’t matter if you have a
ZonedDateTime instance. The
DateTimeFormatter and the format method works for all of them.
String to Date/Time
Another common task is to parse an String into a Date, that’s the purpose of the static method
parse in the Date/Time classes. It requires the String we want to parse and again a
DateTimeFormatter instance with pattern of that String. It will return a Date/Time instance as an output, the same time of instance as the class from where you use the
import java.time.format.DateTimeFormatter; import java.time.LocalDateTime; //Local Date Time String datetimestring = "2021-01-18 00:00:00.0"; LocalDateTime datetime = LocalDateTime.parse(datetimestring, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S")); //Local Date String datestring = "2021-01-18"; LocalDateTime datetime = LocalDate.parse(datestring, DateTimeFormatter.ofPattern("yyyy-MM-dd"));