我有一些项目的日期以MM/dd
格式指定,没有指定年份。解析日期,无年数,跨越12个月的数据
然而,今年从数据的上下文暗示,因为数据显示日期,没有从“当前日期”年龄超过12个月(这是在数据中指定)
例如,假设当前日期为2013年1月31日。 这意味着将从2012年2月1日至2013年1月31日(含)提供信息。
我在这里面临的问题是,因为在数据中没有指定年份,所以在将它们加载到数据库之前,我需要自己生成年份。
从数据的上下文中,我们知道任何大于当前月份的日期都是来自上一年,而小于或等于当前月份的任何日期都是当前年份。
因此,假设当前日期是2013年1月,我们有类似的事情
01/31 - 2013
01/01 - 2013
12/31 - 2012
02/29 - 2012
现在,这里的问题是,在最后一行的日期。
2012年是闰年,所以2月29日确实存在。 但是,2013年没有。
我目前的做法,以日期解析如下(使用SimpleDateFormat
)
- 抓住日期:1月31日
- 追加本年度吧:2016年1月31日
- 解析日期使用日期格式
MM/dd/yyyy
日期解析是在严格模式下执行的,所以类似02/29的东西不会被翻到03/01。
但是,这种算法在闰年失败,因为假设当前年份是2013年,我将尝试解析02/29/2013
,它会失败。
什么是我可以用来确定日期年份的方法?
您的要求不明确。您将1/31显示为2013年,但2012年1月31日是距离2012年1月1日的当前日期少于12个月。 – JimmyJames
@JimmyJames为了清晰起见,我添加了几天。 – MxyL