String timestamp = "2018-10-22 17:20:13";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
Instant result = Instant.from(formatter.parse(timestamp));
Exception in thread "main" java.time.DateTimeException: Unable to obtain Instant from TemporalAccessor: {},ISO resolved to 2018-10-22T17:20:13 of type java.time.format.Parsed
at java.base/java.time.Instant.from(Instant.java:378)
at hello.Lautturi.main(Lautturi.java:79)
Caused by: java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: InstantSeconds
at java.base/java.time.format.Parsed.getLong(Parsed.java:203)
at java.base/java.time.Instant.from(Instant.java:373)
add the timezone to the formatter object
/**
* @author lautturi.com
* Java example: java instant from timestamp string
*/
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
public class Lautturi {
public static void main(String[] args) {
String timestamp = "2018-10-22 17:20:13";
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
.withZone(ZoneId.systemDefault());
Instant result = Instant.from(formatter.parse(timestamp));
System.out.println("Instant: " + result);
}
}
output:
Instant: 2018-10-22T14:20:13Z