我试过
int year = Calendar.get(Calendar.YEAR);
但它给了我编译时错误
非静态方法' get(int)'无法从静态上下文中引用。
我从observable的调用方法调用此方法。
Observable.combineLatest(ob1 ob2,
ob3, new Func3<String, String, String, Boolean>() {
@Override
public Boolean call(String a, String b, String c) {...
我也见过(new Date()).getYear();
,但已被弃用。
答案 0 :(得分:88)
因为您需要先创建一个实例。
试试这个
Calendar.getInstance().get(Calendar.YEAR);
你很高兴。
答案 1 :(得分:5)
Year.now()
.getValue()
其他答案使用麻烦的旧日期时间类,如日历。这些被java.time类取代。对于旧版Android,请参阅ThreeTen-Backport和ThreeTenABP项目。
Year
class 而不是传递纯粹的整数代表一年,而不是传递对象。即,Year
类。
获取当前年份需要一个时区。对于任何给定的时刻,日期在全球范围内因地区而异。因此,Pacific/Auckland
有可能在2018年,America/Montreal
同时在2017年。
最好明确传递所需/预期的区域。如果省略,则隐式获取JVM的当前默认时区。该默认值可以在运行时期间随时更改,因此不可靠。
ZoneId z = ZoneId.now( "Asia/Kolkata" ) ;
Year y = Year.now( z ) ;
如果需要整数,请提取值。
int yearNumber = y.getValue() ;
java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.Date
,Calendar
和&amp; SimpleDateFormat
现在位于Joda-Time的maintenance mode项目建议迁移到java.time类。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
从哪里获取java.time类?
答案 2 :(得分:4)
是的,您收到错误,因为这不是静态方法。首先,您需要创建Calendar类的实例 即。
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
在这里你得到年份,今年!
答案 3 :(得分:1)
// get current year、month and day
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DATE);
// get current year millis
Time time = new Time(Time.TIMEZONE_UTC);
calendar.set(year, 0, 0, 0, 0, 0);
long year = calendar.getTimeInMillis();
time.set(year);
year = time.toMillis(true);
答案 4 :(得分:0)
你应该使用
Calendar.getInstance().get(Calendar.YEAR)
;
答案 5 :(得分:0)
您是否尝试过以下代码
日历c = Calendar.getInstance();
int seconds = c.get(Calendar.SECOND);
int hour = c.get(Calendar.HOUR_OF_DAY); // IF YOU USE HOUR IT WILL GIVE 12 HOUR USE HOUR_OF_DAY TO GET 24 HOUR FORMAT
int minutes = c.get(Calendar.MINUTE);
int date = c.get(Calendar.DATE);
int month = c.get(Calendar.MONTH) + 1; // in java month starts from 0 not from 1 so for december 11+1 = 12
int year = c.get(Calendar.YEAR);
答案 6 :(得分:-2)
您也可以将Calendar.getInstance() .get(Calendar.YEAR )
用于 Kotlin 语言用途