【问题标题】:Getting wrong answers from predefined Calendar function in java从 java 中预定义的 Calendar 函数中得到错误的答案
【发布时间】:2019-03-31 03:53:42
【问题描述】:

我想获得我的 java 程序的 ans,我想在其中找出当天是一年中的哪一天,本周是一年中的哪一周等。当我尝试使用日历类方法执行此操作时,它是给出错误的答案。

下面是我的代码

{
            Calendar c1 = Calendar.getInstance();
            c1.setTime(new Date());
            System.out.println("Today is "+Calendar.DAY_OF_YEAR+" day of year");
            System.out.println("Today is "+Calendar.WEEK_OF_YEAR+" week of year");
            System.out.println("Today is "+Calendar.DAY_OF_WEEK_IN_MONTH+" day of week in month");



    }

输出:-

  Today is 6 day of year
    Today is 3 week of year
    Today is 8 day of week in month

谁能帮忙找出解决办法?

【问题讨论】:

  • 有什么问题?
  • 您打印的那些值是常量。您需要 get 来自 Calendar 对象的字段值。 @SuppressWarnings("static-access") — 您正在压制的警告是在告诉您您错误地使用了 Calendar
  • 欢迎来到 Stack Overflow!请阅读“如何创建minimal reproducible example”。然后使用edit 链接改进您的问题(不要通过 cmets 添加更多信息)。否则我们无法回答您的问题并为您提供帮助。
  • 您必须使用c1.get 方法中的常量...它们只是整数常量,指向日历对象字段中相应特定值的位置。

标签: java calendar java-time date java-calendar


【解决方案1】:

您的Calendar 变量是c1。但这根本不引用c1

Calendar.DAY_OF_YEAR

那是什么? According to the documentation 这些是标识查询该对象时要返回的字段的常量。您不想输出常量本身,而是想使用它从 c1 对象中获取值。像这样的:

System.out.println("Today is " + c1.get(Calendar.DAY_OF_YEAR) + " day of year");

对您的其他领域也同样如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-23
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2019-05-17
    • 2017-05-20
    • 1970-01-01
    相关资源
    最近更新 更多