自从 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/