我有一些項目的日期以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