Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
I am using MapStruct to map values from a source to a target class. The source class has a String property and the target class has a java.util.Date property. The source property is like this: "yyyy-mm-dd". And I want to convert this String property to a Date property. How can I do that using MapStruct? Thank you!
MapStruct takes care of
String
to
Date
conversions automatically. If you need to specify format of your date you can do it like this:
@Mapping(target = "date", dateFormat = "yyyy-MM-dd")
Destination map(Source source);
//For datetime
@Mapping(target = "date", dateFormat = "yyyy-MM-dd'T'HH:mm:ss")
Destination map(Source source);
Where target = "date"
is the name of your property.
You can find more about this in MapStruct documentation.
From the official guide, if you have multiple dates, you can use this:
public class DateMapper {
public String asString(Date date) {
return date != null ? new SimpleDateFormat( "yyyy-MM-dd" )
.format( date ) : null;
public Date asDate(String date) {
try {
return date != null ? new SimpleDateFormat( "yyyy-MM-dd" )
.parse( date ) : null;
catch ( ParseException e ) {
throw new RuntimeException( e );
And after in your mapper:
@Mapper(uses=DateMapper.class)
public interface CarMapper {
CarDto carToCarDto(Car car);
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.