I am trying to convert java String date into java.sql.Timestamp. I am able to convert this by using SimpleDateFormat with String date value as "2021-01-07 02:02:16.172", but when trying with the value as "2021-08-04T00:00:00.000" with seperator 'T', it gives me error. Below is the java code:
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) throws ParseException {
//String date = "2021-08-04T00:00:00.000Z";// How to convert this?
String date = "2021-01-07 02:02:16.172";// conversion successful
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
Date parsedDate = dateFormat.parse(date);
Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
System.out.println(timestamp);
}
}
new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS");would be the old styleTimestampandSimpleDateFormat. Those classes are poorly designed and long outdated, the latter in particular notoriously troublesome. Instead useInstantfrom java.time, the modern Java date and time API.SimpleDateFormat, you’re doing people a bad favour. (2) Beware of the difference betweenhhandHH. Your formatter is not correct.