Scala如何实例化新的Option [java.sql.Date]类型

时间:2015-03-01 18:25:38

标签: string scala date option

我有var date_of_birth2:选项[java.sql.Date] =无。

稍后我必须用字符串填充date_of_birth2。

 String date = "01/01/1990"
 var formate = new SimpleDateFormat("dd/MM/yyyy").parse(date)
 var aDate = new java.sql.Date(formate.getTime()); 

但是aDate只是java.sql.Date的类型。我怎么分配?

var mdate_of_birth2:Option [java.sql.Date] = date // date is String type

3 个答案:

答案 0 :(得分:4)

而不是像@hezamu所建议的那样明确使用Some,您可以在apply随播广告上使用Option方法,如下所示:

val maybeADate:Option[Date] = Option(aDate)

在这种情况下,如果aDate为空,则Option将是None而不是Some(null),这将是不合需要的。

答案 1 :(得分:2)

由于如果存在格式错误,parse方法会抛出异常,您可能还会考虑使用Try将失败压缩到None

val aDate = Try(new SimpleDateFormat("dd/MM/yyyy").parse(date))
    .map(d => new java.sql.Date(d.getTime()))
    .toOption

如果您希望它抛出异常,那么我会使用Option.apply使用@ cmbaxter的回答。

答案 2 :(得分:1)

将其封装在Some

var mdate_of_birth2: Option[java.sql.Date] = Some(aDate)

您应该看看是否可以重构代码以使其成为val