У меня есть API, который принимает дату как строку в качестве параметра запроса. По большей части, я ожидаю, что мои пользователи отправят необязательный параметр даты в формате «yyyyMMdd», поэтому пример будет 2013/10/12
за 12 октября 2013 года. Затем я ищу записи в MongoDB и/или кеше для определенных данных, которые соответствует указанной дате. Код, который у меня есть, превращает строку в нечто, что является нормальным в Scala, является следующим:Scala refactor string to Date code
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)
Но это тоже не решение (я предполагаю, что это будет просто обойти матч, так как это уже экземпляр дата и не строка
Что достойный путь. ?., чтобы решить эту проблему в Scala Я просто jodatime для Scala, чтобы помочь мне со всеми проблемами типа Date/Time
если вы хотите datatime Params игнорироваться вы можете просто добавить: случай Г.Д.: DateTime => и пусть он просто возвращает Г.Д. и выполняет договор, как его уже будучи дата. или я понял, что вы ошибаетесь? –
Теперь он делает правильную вещь, он берет строку и превращает ее в DateTime, предполагая, что клиент передает соответствующую форматированную дату как «yyyyMMdd». Но если он по умолчанию «0» в качестве моего кода, мне нужен способ перевести это на сегодняшнюю дату в виде строки, сегодня будет «20131106». Я должен был бы проверить, если он по умолчанию «0» и преобразовать его в это значение, если это так, а затем превратить его в дату для дальнейшей обработки. – randombits
, но вы можете использовать «явно неправильный код» и изменить свой оператор соответствия? –