这个问题在这里已有答案:
我正在尝试将以下形式的字符串解析为2010-10-12-18-43-55,从当前时区的epoch开始。这是我试过的
DateTimeFormatter dateTimeFormatter =
DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss");
一世。
String datatetime = "2010-10-12-18-43-55";
Instant.parse(datetime).toEpochMilli;
//Throws
//java.time.format.DateTimeParseException:
//Text '2010-10-12-18-43-55' could not be parsed at index 10
II。
String datatetime = "2010-10-12-18-43-55";
Instant.from(LocalDateTime.parse(datetime, dateTimeFormatter)).toEpochMilli
//Throws
//java.time.DateTimeException: Unable to obtain Instant from
//TemporalAccessor: 2010-10-12T18:43:55 of type
//java.time.LocalDateTime type java.time.LocalDateTime
III。
String datatetime = "2010-10-12-18-43-55";
Instant.from(dateTimeFormatter.parse(datetime, new ParsePosition(0))).toEpochMilli
//Throws
//java.time.DateTimeException: Unable to obtain Instant from
//TemporalAccessor: {},ISO resolved to 2010-10-12T18:43:55
//of type java.time.format.Parsed
有人可以帮我解决这个任务吗?
Instant
javadocs,String
必须采用2007-12-03T10:15:30.00Z
格式。String
无法解析为Instant
,因为缺少时区。试试这个:ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, ZoneId.systemDefault());