在java中将字符串转换为数据时间

在java中将字符串转换为数据时间,java,datetime,Java,Datetime,我花了数小时试图将下面显示的datetime字符串转换为时间戳。我发现以下错误,无法使其正常工作: String str = "7/1/2015 11:36 AM"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm:ss a"); LocalDateTime dateTime = LocalDateTime.parse(str, formatter); 以下是错误:-无法在索引0处分析

我花了数小时试图将下面显示的datetime字符串转换为时间戳。我发现以下错误,无法使其正常工作:

 String str = "7/1/2015 11:36 AM"; DateTimeFormatter formatter =
 DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm:ss a"); LocalDateTime
 dateTime = LocalDateTime.parse(str, formatter);
以下是错误:-无法在索引0处分析文本“7/1/2015 11:36 AM”

非常感谢您的帮助

试试这个:

String str = "07/01/2015 11:36 AM"; 
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm a"); 
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
System.out.println(dateTime.toString());
您的格式化程序错误,您在解析中添加了第二个字符,但没有添加到字符串中,它是
7/1/2015 11:36 AM
而不是
7/1/2015 11:36:00 AM
,您只使用一个字符编写了月份,但它需要两个字符

如果要写入不带0的月份和日期,请使用此格式化程序:

DateTimeFormatter formatter =
             DateTimeFormatter.ofPattern("M/d/yyyy hh:mm a"); 
那么输出是:

2015-07-01T11:36


米歇尔。非常感谢。实际上,数据来自一个csv文件,所以我不得不将时间格式更改为“M/d/yyy h:MA”,以适应一位数的日期和时间。不客气。不过,我让您看了一些JavaDocs,然后您可以根据自己的喜好更改格式。