用Java获取当前年份的整数值
时间:2020-03-06 14:45:09 来源:igfitidea点击:
我需要将Java中的当前年份确定为整数。我只能使用java.util.Date()
,但已弃用。
解决方案
int year = Calendar.getInstance().get(Calendar.YEAR);
不知道这是否符合不设置新日历的标准? (为什么反对这样做?)
最简单的方法是从日历中获取年份。
// year is stored as a static member int year = Calendar.getInstance().get(Calendar.YEAR);
最简单的方法(使用日历,抱歉)是:
int year = Calendar.getInstance().get(Calendar.YEAR);
还有新的Date and Time API JSR,以及Joda Time
如果应用程序大量使用Date和Calendar对象,那么我们确实应该使用Joda Time,因为java.util.Date是可变的。更新其字段时,java.util.Calendar会出现性能问题,并且对于日期时间算法而言比较笨拙。
我在图书馆中使用特殊功能来处理天/月/年整数-
int[] int_dmy( long timestamp ) // remember month is [0..11] !!! { Calendar cal = new GregorianCalendar(); cal.setTimeInMillis( timestamp ); return new int[] { cal.get( Calendar.DATE ), cal.get( Calendar.MONTH ), cal.get( Calendar.YEAR ) }; }; int[] int_dmy( Date d ) { ... }
我们可以使用整数数学来完成全部操作,而无需实例化日历:
return (System.currentTimeMillis()/1000/3600/24/365.25 +1970);
新年可能会休息一两个小时,但我没有觉得这是个问题吗?