tl;dr
Date.from(
OffsetDateTime
.parse( "2018-02-13T00:00:51.045+13:00" )
.toInstant()
)
Details
You are using terrible date-time classes that were years ago supplanted by the modern java.time classes defined in JSR 310. Avoid Date/Calendar.
For a date with time of day as seen with a particular offset, use OffsetDateTime class.
Your input text complies with the standard ISO 8601 format used by default in the java.time classes. So no need to specify a formatting pattern.
OffsetDateTime.parse( "2018-02-13T00:00:51.045+13:00" )
If you must use the legacy classes to interoperate with old code not yet updated for java.time, you can convert to and fro. Use the new conversion methods added to the old classes.
java.util.Date d = Date.from( myOffsetDateTime.toInstant() ) ;
All this has been covered many many times already on Stack Overflow. Search to learn more. And see the tutorial provided by Oracle Corp free of cost.
SimpleDateFormatandDate. Those classes are poorly designed and long outdated, the former in particular notoriously troublesome. Instead justv useOffsetDateTimefrom java.time, the modern Java date and time API.