【发布时间】:2020-03-12 04:00:29
【问题描述】:
我有这段代码,它是一个简单的字符串,我想将其解析为 LocalDateTime
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
public class DateClass {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String dateRaw = "2019-05-03 7:05:03";
DateTimeFormatter dtf = new DateTimeFormatterBuilder().appendPattern("uuuu-mm-dd HH:mm:ss").toFormatter();
LocalDateTime date= LocalDateTime.parse(dateRaw, dtf);
System.out.println(date.toString());
}
}
当你运行时,我有下一个错误:
Exception in thread "main" java.time.format.DateTimeParseException: Text '2019-05-03 7:05:03' could not be parsed at index 11
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
at lectordeachvio.DateClass.main(DateClass.java:18)
我做错了什么?为什么de space有问题???
【问题讨论】:
-
HH 应该是 07,但你为什么要使用分钟两次?
-
尝试使用“2019-05-03 07:05:03”作为您的日期模式
-
大写 M 表示月份,y 表示年份
-
@Jens 严格来说
y不是一年。u是一个(签名的)年份。y代表时代。见uuuuversusyyyyinDateTimeFormatterformatting pattern codes in Java? -
这是个好问题。我认为预期的结果很明确,而且问题很少。格式良好的堆栈跟踪形式的可重现示例和特定问题。新的堆垛机做得很好。另外我认为这个问题可能对许多未来的读者有用(如果他们能找到它,我承认它可能很难搜索)。
标签: parsing java-8 java-time localdate datetime-parsing