我试过了
int year = Calendar.get(Calendar.YEAR);
但它给了我编译时错误
无法从静态上下文引用非静态方法“get(int)”。
我从observable的call方法调用这个方法。
Observable.combineLatest(ob1 ob2,
ob3, new Func3<String, String, String, Boolean>() {
@Override
public Boolean call(String a, String b, String c) {...
我也看过(new Date()).getYear();
,但是它已经过时了。
9条答案
按热度按时间jgovgodb1#
因为您需要先创建一个示例。
试试这个
你就可以走了。
jecbmhm32#
是的,你会得到一个错误,因为这不是一个静态方法。首先你需要创建一个Calendar类的示例。
即
如果您的最小API版本〈26,您也可以进行简化:
aij0ehis3#
编号TL;DR
java.时间
其他的Answers使用了旧的日期-时间类,比如Calendar,这些都被java.time类取代了。对于旧版本的Android,请参见ThreeTen-Backport和ThreeTenABP项目。
Year
类不是传递单纯的整数来表示年份,而是传递对象,即
Year
类。获取当前年份需要一个时区。对于任何给定的时刻,地球仪各地的日期都不相同。因此,
Pacific/Auckland
可能在2018年,而America/Montreal
可能同时在2017年。最好显式地传递所需/期望的时区。如果省略,则隐式地获取JVM的当前默认时区。该默认时区在运行时的任何时刻都可能更改,因此不可靠。
当您确实需要整数时,提取该值。
大约 *java.时间 *
java.time框架内置于Java 8及更高版本中,这些类取代了麻烦的旧legacy日期-时间类,如
java.util.Date
、Calendar
和SimpleDateFormat
。要了解更多信息,请参见Oracle Tutorial。并搜索Stack Overflow以获取许多示例和说明。规范是JSR 310。
Joda-Time项目(现在在maintenance mode中)建议迁移到java.time类。
您可以直接与数据库交换 java.time 对象。使用与JDBC 4.2兼容的JDBC driver或更高版本。不需要字符串,也不需要
java.sql.*
类。Hibernate 5和JPA 2.2支持 java.time。从哪里获得java.time类?
*Java SE 8、Java SE 9、Java SE 10、Java SE 11及更高版本-标准Java API的一部分,具有捆绑的实现。
*Java 9带来了一些次要特性和修复。
*Java SE 6和Java SE 7
wydwbb8l4#
5n0oy7gb5#
您应该使用
Calendar.getInstance().get(Calendar.YEAR)
;ocebsuys6#
Calendar.getInstance() .get(Calendar.YEAR )
也可以用于Kotlin语言jv2fixgn7#
你试过下面的代码吗
日历c =日历.getInstance();
olqngx598#
与Kotlin
qyzbxkaa9#
在Kotlin你可以得到
瓦尔当前年份= LocalDate.now().年份