【问题标题】:How to know the number of the current day in the current years using Java?使用Java如何知道当前年份中的当前日期?
【发布时间】:2015-02-27 15:42:17
【问题描述】:

我必须用 Java 计算一年中的当前日期是多少。

例如,如果今天是 1 月 1 日,则结果应该是 1。如果是 2 月 5 日,结果应该是 36

如何在 Java 中自动执行此操作?是否存在一些原生支持此功能的类(例如 Calendar)?

【问题讨论】:

标签: java date jakarta-ee calendar


【解决方案1】:

使用 Java 8:

LocalDate date = LocalDate.of(2015, 2, 5);
int dayNum = date.getDayOfYear();

【讨论】:

  • 小点,但这是否将一年中的第一天设为零?
  • 没有 1 月 1 日返回 1。
  • @assylias mmm 也许我的问题是个愚蠢的问题,但我可以将 LocalDate 仅用于应用程序服务器还是控制台应用程序?
  • 我不确定您所说的控制台应用程序是什么意思 - 但在 Java 8 JVM 上运行的任何东西都可以使用该代码。如果您使用的是旧版本,则可以使用日历。
【解决方案2】:

您可以使用java.util.Calendar 类。小心那个月是从零开始的。所以在你的情况下,一月一日应该是:

    Calendar calendar = new GregorianCalendar(2015, 0, 1);
    int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);  

【讨论】:

    【解决方案3】:
    Calendar#get(Calendar.DAY_OF_YEAR);
    

    【讨论】:

      【解决方案4】:
      int dayOfYear = Calendar.getInstance().get(Calendar.DAY_OF_YEAR);
      

      【讨论】:

        【解决方案5】:

        Joda-Time2.7:

        int dayOYear = DateTime.now().getDayOfYear();
        

        时区对于确定一天至关重要。上面的代码使用 JVM 当前的默认时区。通常最好指定一个时区。

        DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
        int dayOYear = DateTime.now( zone ).getDayOfYear();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-03-01
          • 1970-01-01
          • 2014-08-25
          • 2013-02-15
          • 2020-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多