我偶然发现了一个例外:System.ArgumentOutOfRangeException: Year, Month, and Day parameters describe an un-representable DateTime
。当我在应用程序的DatePicker中选择日期31 of May, 2015时,我得到了异常。在谷歌上搜索之后,我在SO上找到了这篇文章,这个答案似乎描述了我遇到的例外。答案与二月有关,但考虑到闰年。为什么它会在2015年4月31日崩溃,而不是我试过的其他日期?它发生在Android 4.4.4和5.0.2上。请帮帮我!
DatePicker使用基于0的月份:
monthOfYear从0开始的第一个月。
而DateTime是从1开始对月份进行编号:
月月份(1到12)。
所以当从DatePicker设置DateTime时,你需要添加1。4月、6月、9月和11月只有30天,所以如果不进行这种转换,5月31日(以0为基础的4)将以4月31日结束,这是一个无效的日期。