gpt4 book ai didi

java - 为什么Java中的Date类显示的年份是减去1900后的?

转载 作者:行者123 更新时间:2023-11-30 04:57:50 25 4
gpt4 key购买 nike

自从 Java 中的 Date 类被弃用以来,我很少使用它,但当我使用它时,觉得它有时可能会激怒某人,因为它显示的是减去 1900 后的当前年份。当Calendar类及其子类GregorianCalendar返回系统维护的确切年份时,设计者应该真正感受到什么并强加这样的机制,如下所示?

public class Main
{
public static void main(String[] args)
{
Date d=new Date();
System.out.println("Day : "+d.getDate()+" Month : "+d.getMonth()
+" Year : "+d.getYear());

Calendar c=Calendar.getInstance();
System.out.println("Day : "+c.get(Calendar.DATE)+" Month :
"+c.get(Calendar.MONTH)+" Year : "+c.get(Calendar.YEAR));
}
}
<小时/>

它显示输出,如下所示,当前日、月和年。

日:1 月:10 年:111

日:1 月:10 年:2011

<小时/>

设计师对于显示 111 而不是 2011 可能有什么想法?

最佳答案

减法仅适用于排序年份字段“y”。如果指定长年份字段,则“Y”不会发生减法。

如果你的意思是,为什么默认的 toString 使用短年份格式,我认为这是 java 开发人员针对一般情况提出的最自然的表达方式。如果需要显示具有不同格式日期的 Date 对象,请考虑使用 SimpleDateFormatter 类:http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
formatter.format(new Date());

关于java - 为什么Java中的Date类显示的年份是减去1900后的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7970132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com