2013-08-31 6 views
-3

Я потратил много времени, чтобы преобразовать мою строку на сегодняшний день. У меня есть строка вJava: String to Date

Fri Jan 04 12:32:28 CST 2013 

формат. И мой код ниже

myDate=(Date) new SimpleDateFormat("EEE MMM dd kk:mm:ss zzz yyyy").parse(str); 

Пожалуйста, помогите мне, как избавиться от этого. Этот код бросает исключение

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date 
+5

избавиться от чего? Вы получаете какое-то исключение? Неожиданный результат? –

+0

Этот код вызывает исключение –

+5

Проверьте свой оператор импорта. Он должен импортировать 'java.util.Date', а не' java.sql.Date'. –

ответ

2

Используйте оператор импорта

import java.util.Date; 

вместо

import java.sql.Date; 

И да ... пожалуйста, не игнорируйте исключения. Кроме того, при использовании автоматического импорта убедитесь, какой класс вам нужен. В Java API существует много классов, которые могут иметь похожие имена. Но главное - полное имя.

Поэтому убедитесь, что у вас есть полное полное имя в операторах импорта.

1

SimpleDateFormat#parsejava.util.Date не java.sql.Date.
Но вы импортировали java.sql.Date, значит, вы пытаетесь преобразовать java.util.Date в java.sql.Date. Так вы получаете ClassCastException.
Так что ваш импорт Постулаты должен быть (как @Rohit джайнского комментарий)

 import java.util.date 
0

Я предложил бы использовать Joda-Time

import org.joda.time.DateTime; 
import org.joda.time.format.DateTimeFormat; 
import org.joda.time.format.DateTimeFormatter; 

... 

DateTimeFormatter dtf = DateTimeFormat.forPattern("put your format string here"); 
DateTime dateTime = dtf.parseDateTime(str); 

Для строк формата проверить this