我有这种格式的日期:
"Fri Oct 31 15:07:24 2014"
我尝试解析它,因为我解析了很多其他日期,直到现在。 我发现他的格式就是这个(咨询Java文档(http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)):
"EEE MMM dd HH:mm:ss yyyy"
我尝试使用scala REPL运行此命令:
scala> import java.text.SimpleDateFormat
import java.text.SimpleDateFormat
scala> import java.util.Date
import java.util.Date
scala> val sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy")
sdf: java.text.SimpleDateFormat = java.text.SimpleDateFormat@2219f5ee
scala> sdf.parse("Fri Oct 31 15:07:24 2014")
java.text.ParseException: Unparseable date: "Fri Oct 31 15:07:24 2014"
at java.text.DateFormat.parse(DateFormat.java:366)
... 33 elided
但是你可以看到我得到一个ParseException。
我尝试删除Date(和模式)的第一部分,如下所示:
"dd HH:mm:ss yyyy" -> "31 15:07:24 2014"
一切都很好,但是当我尝试添加EEE或MMM时,我得到了ParseException。
我也尝试过使用EEE的java文档中显示的模式,但它在我的机器上也失败了。
我有Java 8和scala 2.11.1
提前谢谢。
答案 0 :(得分:3)
问题是Locale,默认情况下SimpleDateFormat采用正在运行的机器的默认Locale,为SimpleDateFormat设置一个不同的Locale(本例中的“en”语言环境),你需要以这种方式实例化它:
new SimpleDateFormat(format,java.util.Locale.forLanguageTag("en"))