使用 JodaTime 库(虽然我有点灵活)。我意识到一些输入正在打破 Joda 时间,因为一个月中的天数高于 31 或低于 1(因为客户端代码)。
我正在使用该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 )