LocalDateTime解析为纪元秒[重复]

问题描述 投票:2回答:1

这个问题在这里已有答案:

我正在尝试将以下形式的字符串解析为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

有人可以帮我解决这个任务吗?

java java-8 localdate
1个回答
1
投票
  1. Instant javadocsString必须采用2007-12-03T10:15:30.00Z格式。
  2. String无法解析为Instant,因为缺少时区。试试这个:ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, ZoneId.systemDefault());
  3. 我不确定你要做什么。
© www.soinside.com 2019 - 2024. All rights reserved.