我有一個字符串"2017-01-03T02:20:52+00:00"
我想轉換爲LocalDateTime
。無法解析字符串到Java日期
我試過下面
import java.time.format.DateTimeFormatter;
import java.time.LocalDateTime;
public class HelloWorld{
public static void main(String []args){
System.out.println("Hello World");
String date = "2009-07-16T19:20:30-05:00";
String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern(pattern);
LocalDateTime dateTime = LocalDateTime.parse(date, inputFormatter);
System.out.println(dateTime);
}
}
的代碼,我嘗試了各種模式,但每次我得到如下錯誤時間:
Exception in thread "main" java.time.format.DateTimeParseException: Text '2009-07-16T19:20:30-05:00' could not be parsed at index 19
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 HelloWorld.main(HelloWorld.java:11)
在指數19 ,有一個「 - 」,可能不適合使用的模式... – deHaar
請參閱Java DateFormat文檔:http://docs.oracle.com/javase/7/docs/api/j AVA /文本/ SimpleDateFormat.html。符號'Z'是RFC 822時區,例如:-0800。所以如果你從輸入中刪除分號,它應該可以正常工作。 – Korashen
是的,@科拉申是對的。否則,您可以在模式中使用X而不是Z來使用ISO 8601格式。 –