Thu, 13 Jul 2017 18:00:15 +0900
In Java, do you want to convert a character string of this format to Date type?
Like this
public class Main {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
System.out.println(sdf.parse("Thu, 13 Jul 2017 18:00:15 +0900"));
}
}
It can be realized by using the parse method of SimpleDateFormat ... I wrote in various articles, but when I actually execute it
Exception in thread "main" java.text.ParseException: Unparseable date: "Thu, 13 Jul 2017 18:00:15 +0900"
at java.text.DateFormat.parse(DateFormat.java:366)
at Main.main(Main.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
An exception like this will occur.
So rewrite it like this.
public class Main {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.ENGLISH);
System.out.println(sdf.parse("Thu, 13 Jul 2017 18:00:15 +0900"));
}
}
On the third line, Locale is passed as the second argument of the SimpleDateFormat constructor.
This will give you the output Thu Jul 13 18:00:15 JST 2017
.
I mentioned the cause in this article, so if you are interested, please have a look.
Check when moss with SimpleDateFormat parse # 60 --Yurufuwa Technical Diary
Recommended Posts