我有一个接受日期作为字符串作为查询参数的 API。在大多数情况下,我希望我的用户以“yyyyMMdd”的格式发送一个可选的日期参数,所以一个例子是2013/10/12
2013 年 10 月 12 日。然后我在 MongoDB 中搜索记录和/或缓存某些匹配的数据说日期。我拥有的将字符串转换为 Scala 中正常的代码的代码如下:
def parseDate(date: String): org.joda.time.DateTime = {
val formatter = DateTimeFormat.forPattern("yyyyMMdd")
formatter.parseDateTime(date)
}
这很好用。现在我遇到的问题是当用户没有提交日期时,我想默认为今天的日期。这是我需要帮助的地方。我没有一个很好的方法将它变成一个字符串来传递给这个方法。我的代码如下所示:
val gdate = params.getOrElse("gamedate", "0")
val date = gdate match {
case gd:String => MyDateTimeHelper.parseDate(gd)
}
这显然是错误的。我想我也许可以这样做:
val gdate = params.getOrElse("gamedate", new DateTime)
但这也不是一个解决方案(我假设它只是绕过匹配,因为它已经是 Date 实例而不是字符串。
在 Scala 中解决这个问题的好方法是什么?我只是 Scala 的 jodatime 来帮助我解决所有日期/时间类型的问题。