2011-03-21 44 views
26

Tôi có một ngày biếnngày chuyển đổi

var date: Date = new Date() 

sau đó tôi đã chuyển đổi ngày này để String:

bây giờ tôi cần phải chuyển đổi trở lại chuỗi này cho đến nay. Tôi đã thử cả hai:

1:

var stringToDate: Date = date2Str.asInstanceOf[Date] 

và 2:

stringToDate: Date = new SimpleDateFormat("dd.MM.yyyy").parse(dateStr); 

Nhưng trong cả hai trường hợp tôi đã nhận lỗi:

java.lang.ClassCastException: 
java.lang.String cannot be cast to java.util.Date 
+2

tôi cần phải converta một ngày định dạng sau : "22-AUG-11" đến nay !! – Echo

Trả lời

46

tôi nhìn thấy một vài vấn đề trong mã của bạn, nhưng điều này hoạt động tốt:

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 
+0

Đây là siêu. Làm cách nào để tôi có thể chuyển đổi ngày có định dạng sau: "22-AUG-11" thành ngày – Echo

+0

Cảm ơn Wilfred, nó hoạt động ngay bây giờ. – Echo

+1

@Echo "dd-MMM-yy" ... xem http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html –

3

thử đầu tiên của bạn nên cung cấp cho bạn là một ClassCastException bởi vì bạn không thể cast.aString đến một Date. lần thử thứ hai dường như không sử dụng đúng định dạng Date.toString() bản in. Phương thức toString của java.utility.Date trả về một String theo định dạng được chỉ định trong javadoc.

+0

Về phương pháp thứ hai, tôi cần chuyển đổi chuỗi sau "22-AUG-11" thành một ngày. Làm thế nào !! – Echo

+0

Cách định dạng Chuỗi 'dd-MMM-yy'. Kiểm tra [javadoc cho SimpleDateFormat] (http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html), nó cho phép chạy xuống trên những gì bạn có thể sử dụng trong mẫu ngày tháng. – krock

+0

Hi Krock, định dạng này tôi đang tìm kiếm. Thx – Echo

3

sử dụng nscala-time sau đây làm việc cho tôi:

import com.github.nscala_time.time._ 
import com.github.nscala_time.time.Imports._ 

val ysterday= (DateTime.now- 1.days).toString(StaticDateTimeFormat.forPattern("yyyyMMdd")) 
Các vấn đề liên quan