2011-03-21 153 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"))