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

使用“YYYY”的日期

涂煌
2023-03-14

https://docs.oracle.com/javase/9/docs/api/java/util/gregoriancalendar.html#week_year

上面写着

“周年与周年周期同步。第一周与最后一周(含)之间的所有周具有相同的周年值。因此,周年的第一天和最后一天可能具有不同的日历年值。”

public static void main(String[] args) throws ParseException
{
    Calendar testCalendar = Calendar.getInstance();
    System.out.println("First day of the week: " + testCalendar.getFirstDayOfWeek());
    System.out.println("Minimal Days in First Week: " + testCalendar.getMinimalDaysInFirstWeek());
    SimpleDateFormat YYYYMMdd= new SimpleDateFormat("YYYYMMdd");
    String dateString = "01/01/2016";
    Date date = new Date();
    date = new SimpleDateFormat("dd/MM/yyyy").parse(dateString);
    testCalendar.setTime(date);
    int week = testCalendar.get(Calendar.WEEK_OF_YEAR);
    String date2 = YYYYMMdd.format(date);
    System.out.println("Week Number: " + week);
    System.out.println("Date: " + date2);

}

日期:20161231

如果我将日期改为“01/01/2016”

产出为

共有1个答案

裴硕
2023-03-14

关于具体的答案,下表显示了从2010年到2020年每年的1月1日,以及ISO(国际标准)和美国的周日、周年和周数。

Year  DOW  ISO      US
2010  Fri  2009-53  2010-01
2011  Sat  2010-52  2011-01
2012  Sun  2011-52  2012-01
2013  Tue  2013-01  2013-01
2014  Wed  2014-01  2014-01
2015  Thu  2015-01  2015-01
2016  Fri  2015-53  2016-01
2017  Sun  2016-52  2017-01
2018  Mon  2018-01  2018-01
2019  Tue  2019-01  2019-01
2020  Wed  2020-01  2020-01

正如你所看到的,在国际上,1月1日通常是在前一年的第52周或第53周,而在美国,它总是在自己一年的第1周。

国际规则:第1周是包含新年至少4天的第一周。换句话说,一周属于一年中的大部分日子。换句话说,第1周是一年中的第一个星期四(因为周是从星期一开始的)。这暗示,当1月1日是一个周五、周六或周日时,它属于前一年的最后一周。

    System.out.println("Year  DOW  ISO      US");
    for (int year = 2010; year <= 2020; year++) {
        LocalDate jan1 = LocalDate.of(year, Month.JANUARY   , 1);
        System.out.format(Locale.ROOT, "%4d  %3s  %4d-%02d  %4d-%02d%n",
                year, jan1.getDayOfWeek().getDisplayName(TextStyle.SHORT_STANDALONE, Locale.ROOT), 
                jan1.get(WeekFields.ISO.weekBasedYear()), jan1.get(WeekFields.ISO.weekOfWeekBasedYear()), 
                jan1.get(WeekFields.SUNDAY_START.weekBasedYear()), jan1.get(WeekFields.SUNDAY_START.weekOfWeekBasedYear()));
    }
 类似资料:
  • 问题内容: 我正在URL中以以下格式传递日期(dd / mm / yyyy): http://www.website.com/_parameter=20/02/2000 我正在使用以下PHP将其转换为YYYY-MM-DD格式。 而我的数据库如下: 上面返回以下内容: 1970-01-01 问题答案: 使用时,请确保使用有效的datetime格式。否则会返回 或 给您一个意外的值。 假定使用XX /

  • 问题内容: 可能重复: 扩展JavaScript的Date.parse以允许DD /MM/YYYY(非美国格式的日期)吗?将dd-mm-yyyy字符串转换为日期 在文本框中输入日期,例如: 05/09/1985,我想将其转换为1985年9月5日(dd-MMM-yyyy)格式。我将如何实现?请注意,源格式可以是或或格式。 代码段: 此代码返回 1985年 5月9 日, 但我希望 1985年9月5日

  • 问题内容: 我有一个日期列,其中日期格式为 在SQL Server中。有什么可能的方法来检索日期格式为 在选择语句中? 问题答案: 试试这个: 源链接 附录1: 如我的评论中所述,您需要先将字段转换为类型,然后才能执行上述操作。此示例应在您的SQL Server上运行: 如果出现此异常: 消息242,级别16,状态3,行1将varchar数据类型转换为datetime数据类型导致超出范围的值。 然

  • 问题内容: 我正在尝试从转换日期。我已经使用了mktime()函数和其他函数,但是我似乎无法使其工作。我已经成功地将原始日期用作定界符,但更改格式并将其与交换时没有成功。 任何帮助将不胜感激。 问题答案: 通过查看各个组成部分之间的分隔符,可以消除或格式中的日期的歧义:如果该分隔符是斜杠(),则假定为American ;否则,为0。反之,如果分隔符是破折号()或点(),则采用欧洲格式。 使用默认的

  • 我有一个格式为。我希望它的格式为 下面是我尝试进行此转换的示例util: 但是,我得到的输出不是格式。 请告诉我如何将从格式化为

  • 问题内容: 如何将日历日期转换为格式。 这将产生。但是我需要的是。我的目的是使用条件将此日期与数据库中的另一个日期进行比较。所以我需要格式的日期对象。 问题答案: Java是自1970年1月1日格林尼治标准时间00:00:00以来的毫秒数的容器。 当你使用时,Java将使用打印内容。 更改它的唯一方法是重写Date并提供你自己的实现。现在,在启动IDE并尝试执行此操作之前,我不会这样做。它只会使事