Подтвердить что ты не робот

Преобразование даты

У меня есть переменная 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
4b9b3361

Ответ 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"))