2011-03-21 191 views
26

我有可變日期轉換

var date: Date = new Date() 

的日期,我已轉換這個日期字符串:

現在我需要這個字符串轉換回日期。 我曾經嘗試都:

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

我需要converta以下格式的日期: 「22-AUG-11」迄今爲止! – Echo 2011-03-21 12:59:50

回答

46

我看到一對夫婦的代碼中的問題,但這個工作得很好:

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

這是超級。 如何轉換以下格式的日期:「22-AUG-11」至日期 – Echo 2011-03-21 13:05:49

+0

感謝Wilfred,它現在可以工作。 – Echo 2011-03-21 14:16:42

+1

@Echo「dd-MMM-yy」...參見http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html – 2012-03-15 19:57:56

3

你的第一次嘗試應該給你一個ClassCastException,因爲你不能cast.aString到日期。第二次嘗試似乎沒有使用Date.toString()打印的正確格式。 java.utility.Date的toString方法以javadoc中指定的格式返回一個String。

+0

關於第二種方法,我需要將以下字符串「22-AUG-11」轉換爲日期。 如何! – Echo 2011-03-21 13:04:38

+0

格式字符串'dd-MMM-yy'如何?查看[SimpleDateFormat的javadoc](http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html),它可以幫助您瞭解日期模式中可以使用的內容。 – krock 2011-03-21 13:09:04

+0

嗨Krock,這種格式是我正在尋找的。 Thx – Echo 2011-03-21 14:17:25

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"))