Java 为什么此日历视图为空(不显示任何内容)?
我正在开发一个叫做无限日历的应用程序。它不是无限的,因为每件事都有一个极限,我现在发现这个极限。我正在使用Java 为什么此日历视图为空(不显示任何内容)?,java,android,datetime,calendar,jodatime,Java,Android,Datetime,Calendar,Jodatime,我正在开发一个叫做无限日历的应用程序。它不是无限的,因为每件事都有一个极限,我现在发现这个极限。我正在使用日历视图来显示日历和JodaTime,以帮助我处理日期 我的布局只有一个视图: <CalendarView android:layout_width="match_parent" android:layout_height="match_parent" android:showWeekNumber="false" android:shownWeekCou
日历视图
来显示日历和JodaTime,以帮助我处理日期
我的布局只有一个视图:
<CalendarView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:showWeekNumber="false"
android:shownWeekCount="5"
android:id="@+id/calendar">
</CalendarView>
为什么我要使用9223372017014400000L
?因为经过一些实验,我发现这是JodaTime能得到的最大值。为什么我没有在布局文件中设置它们?因为我不知道格式。我以前试过几次,但它不断抛出异常,说最大值小于最小值
现在我想,到目前为止还不错。因此,我尝试将日期设置为一些非常大的数字:
Date date = new LocalDate (2000000, 1, 1).toDate ();
calendar.setDate (date.getTime ());
事实上,我甚至不知道我是否做得很好,或者我只是在屠杀它
现在奇怪的事情发生了。当我运行应用程序时,日历视图
只在顶部显示月份、年份和星期几!我搜索并发现了另一个类似的问题:
但是答案告诉OP将维度设置为match\u parent
,我显然这样做了
问题来了,这有什么特殊原因吗?如果是,它是什么?我如何修复它?如果否,日历视图的限制是什么
更新:
我尝试将最小日期设置为默认值(未指定该值),将最大日期设置为1/1/2000000,然后将日期设置为1/12000000。现在,日历视图显示了1999999年的日期和其他日期!真奇怪
乔恩·斯基特,请帮帮我 从我手机上谷歌自己的日历应用判断,该应用只适用于2038年,我想他们的CalendarView
也会遇到类似的问题。这可能是它支持的最长日期,尽管我在文档中找不到任何提及这一点的内容
您最好研究其他解决方案或编写自己的解决方案,使用64位时间表示法-这应该涵盖您大约3000亿年的时间
旁白:JodaTime使用64位表示时间,因此要获得最大值,只需将63个连续的1转换为十进制即可9223372036854775807
。无需进行任何实验,结果略高于您的结果。请参阅更新。我尝试了其他方法,日历上显示的日期是2000000年不,因为我仍然不明白为什么2000000年是可以的,但292278993年不是。你在更新中没有提到这一点。你所说的是它在2000000年起了作用,老实说,我对它能应付这一点印象深刻。我认为您必须接受,在使用CalendarView时会有一些限制。你不应该指望它能在3亿年内发挥作用。
Date date = new LocalDate (2000000, 1, 1).toDate ();
calendar.setDate (date.getTime ());