【问题标题】:Year, Month, and Day parameters desribe an un-representable DateTimeYear、Month 和 Day 参数描述了无法表示的 DateTime
【发布时间】:2015-08-03 02:27:20
【问题描述】:

我只是偶然发现了一个例外:System.ArgumentOutOfRangeException: Year, Month, and Day parameters describe an un-representable DateTime。当我在我的应用程序的 DatePicker 中选择日期 2015 年 5 月 31 日时,我遇到了异常。谷歌搜索后,我找到了this post on SO,其中this answer 似乎描述了我遇到的异常。答案与二月有关,但要考虑闰年。为什么它会在 2015 年 4 月 31 日崩溃,但我尝试过的任何其他日期都没有?它发生在 Android 4.4.4 和 5.0.2 上。请帮帮我!

【问题讨论】:

  • @samgak 感谢您指出这一点,但我的问题是关于 5 月,而不是 2 月。
  • 4-31 是四月,不是五月

标签: android datetime datepicker xamarin xamarin.android


【解决方案1】:

DatePicker 使用从 0 开始的月份:

年月 第一个月从零开始。

DateTime 是从一开始的月份数:

月 月份(1 到 12)。

因此,当从 DatePicker 设置 DateTime 时,您需要添加 1。4 月、6 月、9 月和 11 月有 only 30 days,因此如果没有此转换,5 月(基于 0 的 4)31 日将结束为 4 月 31 日,这是一个日期无效。

【讨论】:

  • DatePicker 以比公历少 1 的形式返回月份。所以,一月是 0,而五月是 4。为了避免这个异常,我应该在设置 DateTime 时给月份加上 +1 吗?
  • 是的,没错,DateTime 是从 1 开始的,所以你必须加一个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
相关资源
最近更新 更多