2014-11-01 3 views
2

У меня есть дата в следующем формате:Невозможно разобрать дату, используя SimpleDateFormat в Java/Скале

"Fri Oct 31 15:07:24 2014" 

, и я попытался разобрать его, как я разобран много других даты до сих пор. я понял, что его формат это один (посоветовавшись с Java Docs (http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)):

"EEE MMM dd HH:mm:ss yyyy" 

Я пытался с лестницей РЕПЛ работает это команды:

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 = [email protected] 

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.

Я попытался удалить первую часть даты (и образец), как это:

"dd HH:mm:ss yyyy" -> "31 15:07:24 2014" 

и все шло хорошо, но когда я пытаюсь добавить EEE или MMM я получаю ParseException.

Я также попробовал шаблон, показанный в java-документах, который использует EEE, и он тоже не работает на моей машине.

У меня есть Java 8 и 2.11.1 Scala

Спасибо заранее.

+0

Возможный дубликат [Формат преобразования даты в Java] (http://stackoverflow.com/questions/5326742/problem-converting-date-format-in-java) –

ответ

3

Проблема была в Locale, по умолчанию SimpleDateFormat берет по умолчанию Locale запущенного компьютера, чтобы установить другой язык Locale (локальный язык «en» в этом примере) для SimpleDateFormat, который необходимо создать таким образом:

new SimpleDateFormat(format,java.util.Locale.forLanguageTag("en")) 
Смежные вопросы