当前位置: 首页 > 知识库问答 >
问题:

如何在Android系统中获得今年?

百里默
2023-03-14

我试过了

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()). get年份();但它已被弃用。

共有3个答案

单于煌
2023-03-14

#tl;博士

Year.now()
    .getValue()

其他答案使用麻烦的旧日期时间类,如日历。这些被java.time类取代。有关旧版本的Android,请参阅ThreeTen-Backport和ThreeTenABP项目。

与其只传递整数来表示一年,不如传递对象。即年。

获取当前年份需要一个时区。对于任何给定的时刻,全球各地的日期都因地区而异。因此,Pacific/Auckland可能是2018年,而America/蒙特利尔同时是2017年。

最好明确传递所需/预期的区域。如果省略,则隐式获取JVM的当前默认时区。默认值可以在运行时随时更改,因此不可靠。

ZoneId z = ZoneId.now( "Asia/Kolkata" ) ;
Year y = Year.now( z ) ;

当您确实需要一个整数时,提取该值。

int yearNumber = y.getValue() ;

java。时间框架内置于Java 8及更高版本中。这些类取代了麻烦的旧遗留日期时间类,如java。util。日期、日历、,

要了解更多信息,请参阅Oracle教程。并在Stack Overflow中搜索许多示例和解释。规范为JSR 310。

Joda-Time项目现在处于维护模式,建议迁移到java.time类。

你可以交换java。时间对象直接与数据库连接。使用符合JDBC 4.2或更高版本的JDBC驱动程序。不需要字符串,也不需要java。sql* 类。Hibernate5

在哪里获得java.time类?

  • Java SE 8、Java SE 9、Java SE 10、Java SE 11和更高版本-标准Java API的一部分,带有捆绑实现。
    • Java 9带来了一些小功能和修复
    • 大部分java。时间功能被向后移植到Java 6
    • Android(26)的更高版本捆绑了java的实现。时间课程
    • 对于早期Android(

宗政天逸
2023-03-14

是的,你会得到一个错误,因为这不是一个静态方法。首先,需要创建Calendar类的实例<即。

Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);

如果您的最小API版本为

val yearInt = Year.now().value
闻人嘉木
2023-03-14

因为你需要先创建一个实例。

试试这个

Calendar.getInstance().get(Calendar.YEAR);

你可以走了。

 类似资料:
  • 在Android系统中如何获得屏幕的可用高度?我需要的高度减去状态栏/菜单栏或任何其他可能在屏幕上的装饰,我需要它为所有设备工作。另外,我需要在onCreate函数中了解这一点。我知道这个问题以前有人问过,但我已经尝试过他们的解决方案,但没有一个奏效。以下是我尝试过的一些事情: 这还没有考虑状态栏/菜单栏: 我然后用下面的代码从屏幕高度中减去状态栏和菜单栏的高度: 在API17上,它给出了正确计算

  • 问题内容: 换句话说,我想要提供Joda-Time的功能: 但没有Joda-Time,只有java.util.Date。 不推荐使用.setHours()等方法。有没有更正确的方法? 问题答案: 由于不推荐使用这些方法,因此您可以使用: 如果最终需要一个对象,只需调用

  • 问题内容: 我正在使用Netbeans 7.1 IDE编写Java 7。从Java 1.7包开始,他们在应用程序中使用了新主题。 我该怎么做才能使应用程序的主题与操作系统中的主题完全相同(即,如果我使用Ubuntu,我希望程序的外观与Ubuntu的外观相同)? 问题答案: 我觉得这对SO来说更是一个问题,但总之,您应该尝试类似的方法:

  • 问题内容: 假设我要在go程序中运行“ls”,并将结果存储在字符串中。似乎有一些命令可以在exec和os包中派生进程,但是它们需要stdout等文件参数。是否有办法将输出作为字符串? 问题答案: 编辑: 此答案已过时。请在下面查看FatihArslan的答案。 通过指定Pipe作为标准输出(如果需要,还可以使用stderr)来使用exec.Run。它将返回cmd,其中在Stdout(和Stderr

  • 实际上,我有一个,它是(在和),现在我需要创建另一个(在该的下方),一开始必须不可见。 当我的活动运行时,我想对隐藏的布局进行动画处理。 隐藏的必须自下而上。我不知道如何实现这个动画??我不知道如何创建一个最初不可见的布局,经过一段时间的延迟后,它必须从屏幕下方显示并从侧面显示??? 这是我的xml文件代码

  • 问题内容: 为了构建unix / dos特定的脚本,我需要知道我使用的是哪种操作系统。 我如何获得此信息? 告诉我更多信息,但不清楚我是否在Unix上运行。 问题答案: PHP具有许多经常有用的 预定义常量 。 在这里, 您正在寻找的那个。 例如,在我当前的计算机上,此代码: 给: 您 可以在的手册页上找到一些示例和功能比较的比较。例如 (引用) : 该页面还显示: 对于仅操作系统的名称,请考虑使