JodaTimeライブラリを使用します(私は少し柔軟性がありますが)。月の日が31より上または1より下であるため(クライアント側のコードのため)、入力の一部がJodaの時間を壊していることに気付きました。
LocalDate
カレンダーの操作にオブジェクトを使用しています。入力が例外をスローし始めないように、日付を簡単にサニタイズするためのライブラリまたはメソッドはありますか?
私が現在使用しているいくつかのScalaコード:編集:修正されたコード
val now = new LocalDate();
val workingDate = now.withYear(y).withMonthOfYear(m).withDayOfMonth(d).withDayOfWeek(DateTimeConstants.SUNDAY)
ymdStart = toTimestampAtStart( workingDate )
明確にするために、ここでの目標は日付を適切な日付に変換することです。したがって、ユーザーが7月38日を送信すると、8月7日に変換されます。これを多く引き起こす着信URL構造があり、のように見え/timeline/2012/07/30
ます。
純粋な運動の理由で(正規化は悪い習慣のように思われることに同意します)、そのような問題を扱うライブラリがあるかどうか、私は今、純粋に興味があります。
ありがとう!
最終更新:
答えが指摘しているように、正規化は悪い考えでした。入ってくる変数を修正するために、クライアント側で多くのリファクタリングを行いました。これは私が使用することになったコードです:
ymdStart = new Timestamp( toTimestampAtStart( new LocalDate(y,m,d).withDayOfWeek(1) ).getTime - 86400000 )
ymdEnd = new Timestamp( ymdStart.getTime + 691200000 )