If you run this code you will see that DatePlus and DateList are inconsistent in the format of the lowest order element of the date list.
DatePlus[DateList["2012-1-1" ], {5, "Month"}] === DateList["2012-6-1"]
DatePlus[DateList["2012-1-1" ], {5, "Month"}] == DateList["2012-6-1"]
DateList[DatePlus[DateList["2012-1-1" ], {5, "Month"}]] === DateList["2012-6-1"]
DatePlus[DateList["2012-1-1" ], {5, "Month"}] // FullForm
DateList["2012-6-1"] // FullForm
DateList[DatePlus[DateList["2012-1-1" ], {5, "Month"}] ] // FullForm
This leads to issues when you try to locate elements in a list as follows:
Position[{DatePlus[DateList["2012-1-1" ], {5, "Month"}]}, DateList["2012-6-1"]]
Position[{DateList[DatePlus[DateList["2012-1-1" ], {5, "Month"}]]}, DateList["2012-6-1"]]
What is even more annoying is that I have found that wrapping a date generated by DatePlus in DateList doesn't always fix the problem and I can not tell what circumstances are required to make it work and not work.
Any insight would be appreciated. I may try to open a case with Wolfram, but my past experiences with their support team have been an unsatisfactory use of my time.