Преобразование даты
У меня есть переменная date
var date: Date = new Date()
то я преобразовал эту дату в String:
var dateStr = date.toString()
Теперь мне нужно преобразовать эту строку в дату.
Я пробовал оба:
1
var stringToDate: Date = date2Str.asInstanceOf[Date]
и 2:
stringToDate: Date = new SimpleDateFormat("dd.MM.yyyy").parse(dateStr);
Но в обоих случаях я получил ошибку:
java.lang.ClassCastException:
java.lang.String cannot be cast to java.util.Date
Ответы
Ответ 1
Я вижу пару проблем в вашем коде, но это отлично работает:
scala> val format = new java.text.SimpleDateFormat("dd-MM-yyyy")
format: java.text.SimpleDateFormat = [email protected]
scala> format.format(new java.util.Date())
res4: java.lang.String = 21-03-2011
scala> format.parse("21-03-2011")
res5: java.util.Date = Mon Mar 21 00:00:00 CET 2011
Ответ 2
Ваша первая попытка должна дать вам ClassCastException, потому что вы не можете использовать cast.aString для даты. вторая попытка, похоже, не использует правильный формат, который Date.toString()
печатает. Метод toString java.utility.Date возвращает строку в формате, указанном в javadoc.
Ответ 3
с помощью nscala-time для меня работало следующее:
import com.github.nscala_time.time._
import com.github.nscala_time.time.Imports._
val ysterday= (DateTime.now- 1.days).toString(StaticDateTimeFormat.forPattern("yyyyMMdd"))