获取当前年份和月份会产生奇怪的结果

2024-03-01

我正在做一个与Android相关的学习项目。我试图使用下面的代码获取当前年份和月份,但它对我不起作用。

GregorianCalendar gc = new GregorianCalendar();
gc.YEAR // returning 1       
gc.MONTH // returning 2

Calendar c = Calendar.getInstance();
c.YEAR // returning 1       
c.MONTH // returning 2

有人能帮我吗?难道我做错了什么?请原谅我是java开发新手。谢谢。


只是为了提供更多背景信息:

Both new GregorianCalendar() and Calendar.getInstance()将正确给出在当前日期和时间初始化的日历。

MONTH and YEAR are 常量Calendar http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html班级。你应该not“通过”引用使用它们,这使得它们看起来像是对象状态的一部分。这是设计中不幸的一部分Calendar要访问不同字段的值,您需要调用的类get带有字段编号,指定为这些常量之一,如其他答案所示:

Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);

请注意,月份数字是从 0 开始的,因此在撰写本文时(四月)月份数字将为 3。

这是 Java 语言设计中一个不幸的部分,您can通过该类型的表达式引用静态成员(例如常量),而不是only通过类型名称。

我的建议:

  • 如果您的 IDE 允许(如 Eclipse 那样),请创建如下表达式:c.YEAR给出编译时错误 - 如果你总是使用,你最终会得到更清晰的代码Calendar.YEAR.
  • 在可能的情况下,使用乔达时间 http://www.joda.org/joda-time/- 一个更好的 Java 日期/时间库。诚然,在 Android 上,您可能会受到一些空间限制,但如果您的应用程序进行大量日期/时间操作,那么它会为您省去很多麻烦。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取当前年份和月份会产生奇怪的结果 的相关文章

随机推荐

  • Facebook-passport 与 JWT

    我一直在使用Passport在我的服务器上进行用户身份验证 当用户在本地登录 使用用户名和密码 时 服务器会向他们发送JWT它存储在 localstorage 中 并在每次需要用户身份验证的 api 调用时发送回服务器 现在我想支持Face
  • Python zipfile.extract() 不会提取所有文件

    我正在尝试使用此处找到的代码提取压缩文件夹 def unzip source filename dest dir with zipfile ZipFile source filename as zf for member in zf inf
  • Java 中的向上转型/向下转型

    我试图理解 Java 中的向上转型和向下转型 但我对以下场景感到困惑 关于我的代码 如下 首先 为什么当我包含该行时代码无法编译myAnimal bark 第二个 假设我注释掉myAnimal bark 为什么调用myAnimal move
  • PostgreSQL 中带有字符串的 For 循环

    这里我试图连接一个字符串 CREATE FUNCTION looping RETURNS TABLE round text DECLARE i RECORD BEGIN FOR i IN select regexp split to tab
  • 我可以在一个 MTLRenderCommandEncoder 中使用多个 MTLRenderPipelineStates 吗?

    我目前正在为游戏制作简单的 UI 为了绘制每个按钮 我需要使用 2 个管道状态 每个按钮使用相同的顶点着色器 一种是使用静态颜色片段着色器绘制边框线带 另一种是使用波纹渐变绘制按钮的内部 我想知道是否需要两个不同的渲染命令编码器 每个管道一
  • 如何在平面列表中交替颜色(React Native)

    尝试交替颜色React Natives Flatlist 我相信我需要 rowID 或类似的东西来做到这一点 这是我到目前为止所得到的 let colors 123456 654321 fdecba abcdef
  • 节点如何知道哪些节点已经看到集群当前状态?

    我正在阅读 akka 文档 并在理解他们的实现方式时遇到了一些麻烦Gossip 文档在这里 http doc akka io docs akka 2 4 common cluster html Gossip Protocol 让我困惑的部分
  • rpm %config(noreplace) 用 %config 覆盖

    在我的 rpm 中 我有一个完整的目录 我想用 config noreplace 标记它 该目录中有一个文件 我想在每次安装时使用 config 中的语义将其替换为最新的 rpm 使用此处的指南 http www uxsup csx cam
  • 禁用 WPF DataGrid 中第一行的第一列

    有没有一种方法 使用样式和多触发器 始终禁用第一行的第一列DataGrid在 WPF 控件中 这是一个模板化列 在编辑模式下显示组合框 在正常模式下显示文本框 我希望它永远不会进入编辑模式 仅此列 该行中的其余列应该能够进入编辑模式 是的
  • 这里不允许AllowOverride

    我已经设置了一个虚拟主机 如下所示
  • 如何在任务计划程序上执行PowerShell脚本?

    我正在尝试执行我的 Powershell 脚本 每 5 分钟运行一次 我尝试使用 Windows 7 的任务计划程序来运行它 但它在记事本上打开我的脚本 并且不会在我的数据库中插入任何内容 下面是我的 Powershell V 2 0 脚本
  • 如何通过 AutoCAD Plot API 在 Forge 设计自动化中使用用户定义的字体

    我们使用 Forge Plot API 将 DWG 绘制为 PDF JPG 一位客户提出了使用名为 ROBBI TTF 的特殊 TTF 字体的 DWG 我想这个字体必须上传到 Forge 服务器才能使用 是否可以上传字体一次 以便它可以用于
  • Jupyter:更改输出单元格大小

    我在 vscode 上使用 Jupyter 自上次更新以来 每次我都会看到整个输出窗口 当它很大时 有时会很烦人 我想减少它并且能够滚动它 我尝试修改 最大输出大小 设置 但它对我来说没有任何改变 有什么帮助吗 谢谢你 我是 VS Code
  • SmartGit 在 Ubuntu 上的安装和使用

    我已经下载了最新的 SmartGit 安装 每次我想使用它时 我都需要从 SmartGit bin 目录运行脚本 smartgit sh 此过程每次都需要相同的存储库设置 在 Ubuntu 上安装 SmartGit 的正确方法是什么 因此
  • Apache URL 重写,

    我正在尝试让 URL 重写在我的网站上运行 这是我的 htaccess 的内容 RewriteEngine On RewriteRule blog index php page blog L RewriteRule about index
  • 对“cvCreateKalman”的未定义引用[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我一直在开
  • 使用剪贴板 API 时 Chrome 中的构造函数非法?

    我目前正在构建一个网络应用程序 它是我很久以前用 Visual Basic 编写的另一个程序的翻译 在 Visual Basic 中 可以将数据直接放入操作系统的剪贴板中 Chrome 中有执行此操作的功能吗 我试过了 var magice
  • 在基于nx的nodejs应用程序中使用环境变量

    我已经在 nrwl nx 工作区中设置了一个包含多个 Nodejs 和 Angular 应用程序的项目 我正在尝试使用环境文件 在 Nodejs 应用程序内 我已经像这样设置了导入 import environment from envir
  • OLE DB 目标:转换规范的字符值无效

    我的表来源 num facture TYPE actif date 1 1 1 2010 01 31 00 00 00 000 2 2 1 2011 01 31 00 00 00 000 3 3 2 2012 01 31 00 00 00
  • 获取当前年份和月份会产生奇怪的结果

    我正在做一个与Android相关的学习项目 我试图使用下面的代码获取当前年份和月份 但它对我不起作用 GregorianCalendar gc new GregorianCalendar gc YEAR returning 1 gc MON