【发布时间】:2017-09-01 09:05:56
【问题描述】:
我试图从日期中获取年份,并且使用 Calendar.get(Calendar.YEAR) 我得到的是 3917 年而不是 2017 年?但是当我尝试使用date.getYear() 检查输出时,它会返回正确的年份。
Date date = new Date(year, month, day);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
Log.d(TAG, "onClick: year "+date.getYear());
Log.d(TAG, "onClick: year "+calendar.get(Calendar.YEAR));
输出:
点击:2017 年
点击:3917 年
日期类显示正确的年份,但日历显示错误的年份
【问题讨论】:
-
你可以在这里阅读解释stackoverflow.com/questions/26255636/…
-
不要使用日期,使用最新的 API
LocalDate -
您应该使用
LocalDate.of来代替这个过时的解决方案。然后使用LocalDate.getYear()。 -
@PeterBruins 在我的问题中,您可以看到 date.getYear() 有效,但 Calendar.YEAR 无法正常工作。在提供的链接上,date.getYear() 存在问题而不是 Calendar.Year,因为它在我的问题中
-
@MiljanRakita 不,它不会返回您想要的。
Date的文档说它使用来自1900的年份值,所以它应该给你117到 2017 年的日期。你没有正确使用它,因为Calendar阅读文档以了解收到的值,它将1900添加到 2017 以获得等效日期,给出 3917。您只是使用错误。