Guest User

Untitled

a guest
Jul 18th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. package com.banksimple.util
  2. import org.scala_tools.time.Imports._
  3. import org.joda.time.format.{DateTimeFormat,DateTimeFormatter}
  4.  
  5.  
  6. class SafeDateTimeFormatter(val self: DateTimeFormatter) extends Proxy {
  7. def safelyParseDateTime(input: String): Option[DateTime] =
  8. try Some(self.parseDateTime(input))
  9. catch { case _ => None }
  10. }
  11.  
  12. object DateTimeImports {
  13. implicit def dtf2SafeDtf(in: DateTimeFormatter) = new SafeDateTimeFormatter(in)
  14. }
  15.  
  16. object DateTimeUnionParser {
  17. def apply(patterns: String*)(input: String): Option[DateTime] = {
  18. import DateTimeImports._
  19. val matchers = patterns.map({DateTimeFormat.forPattern(_)})
  20. matchers.toStream.flatMap(_.safelyParseDateTime(input)).headOption
  21. }
  22. }
Add Comment
Please, Sign In to add comment