首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java时间模式中YY和YY的区别

Java时间模式中YY和YY的区别
EN

Stack Overflow用户
提问于 2019-12-30 08:12:14
回答 3查看 6K关注 0票数 9

在文档SimpleDateTimePattern中,yy应该与YY相同。

今天是Dec 30, 2019,今天是YY20yy代表今天是19。在Java时间模式中,yyYY有什么区别?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-12-30 08:15:45

yy是日历年,而YY是一周年。一周的一年可能与日历年不同,取决于一月的第一天是哪一天。例如,请参见ISO-8601周年

今天(2019年12月30日)是一个很好的例子,公历年是2019年,而周年份是2020年,因为这周是2020年的第一周。因此,yy将导致19,而YY将导致20

维基百科页面对一年的第一周的定义

ISO 8601定义的第01周是一个星期与公历年的第一个星期四在其中。以下基于本周属性的定义是相互等效的,因为ISO周从星期一开始:

  • 这是它在一月份的第一周(4天或更长时间)。
  • 它的第一天是离1月1日最近的星期一。
  • 里面写着1月4日。因此,最早的第一周从12月29日星期一(前公历年)延长到1月4日星期日,最近可能的第一周从1月4日星期一到1月10日星期日。
  • 它有一年的第一个工作日,如果星期六、星期日和1月1日不是工作日的话。

如果1月1日是星期一、星期二、星期三或星期四,那是在第一周。如果1月1日是星期五,那是前一年第53周的一部分。如果是星期六,那是前一年最后一周的一部分,普通年份是52周,闰年是53周。如果是在星期天,那是前一年第52周的一部分。

有些地方,例如美国,不遵守ISO-8601标准,因为在那里他们使用星期日作为一周的第一天,但是他们的周数也有类似的规则。

票数 15
EN

Stack Overflow用户

发布于 2019-12-30 08:14:54

你把它放在你的链接里:

Y年1996;96 Y周年年2009;09

周年度可以是不同的,例如,这个新年周与当前年份不同。

周年定义为年的第一个星期四

一年中的第一周是包含当年第一个星期四的那一周

票数 4
EN

Stack Overflow用户

发布于 2019-12-30 08:28:39

它们都代表一年,而yyyy代表日历年度,YYYY代表一周中的一年。

一个例子说明了这一点比以往任何时候都好。

代码语言:javascript
复制
package datetest;    

import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {

    public static void main(String[] args) {
        try {
            String[] dates = {"2018-12-01", "2018-12-31", "2019-01-01"};
            for (String date: dates) {
                SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd");
                Date d = dt.parse(date);

                SimpleDateFormat dtYYYY = new SimpleDateFormat("YYYY");
                SimpleDateFormat dtyyyy = new SimpleDateFormat("yyyy");

                System.out.println("For date :" + date + " the YYYY year is : " + dtYYYY.format(d) + " while for yyyy it's " + dtyyyy.format(d));
            }
        } catch (Exception e) {
            System.out.println("Failed with exception: " + e);
        }
    }
}

输出

代码语言:javascript
复制
For date : 2018-12-01 the YYYY year is : 2018 while for yyyy it's 2018
For date : 2018-12-31 the YYYY year is : 2019 while for yyyy it's 2018
For date : 2019-01-01 the YYYY year is : 2019 while for yyyy it's 2019
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59527605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档