当前位置: 首页 > 面试题库 >

java.util.Date和getYear()

欧阳君浩
2023-03-14
问题内容

我在Java中遇到以下问题(我看到有些人在JavaScript中也遇到了类似的问题,但我正在使用Java)

System.out.println(new Date().getYear());
System.out.println(new GregorianCalendar().getTime().getYear());
System.out.println(this.sale.getSaleDate().getYear());
System.out.println(this.sale.getSaleDate().getMonth());
System.out.println(this.sale.getSaleDate().getDate());

退货

I/System.out( 4274): 112
I/System.out( 4274): 112
I/System.out( 4274): 112
I/System.out( 4274): 1
I/System.out( 4274): 11

我不知道我认为应该是2012年的112位。这是怎么回事?该
java.util.Date课程不可用吗?我将其作为字段存储在我的几个班级中,以存储日期和时间。我该怎么办?


问题答案:

根据javadocs:

@Deprecated
public int getYear()

不推荐使用 。从JDK 1.1版开始,由取代Calendar.get(Calendar.YEAR) - 1900

返回一个值,该值是从包含或由此日期对象表示的时间点开始的那一年减去1900的结果,如当地时区所解释。

返回: 此日期表示的年份,减去1900。

另请参见:
日历

所以112是正确的输出。我会遵循Javadoc中的建议,或者改用JodaTime。



 类似资料:
  • 问题内容: :什么时候使用,为什么? 问题答案: 恭喜,你已经使用JDBC达到了我最喜欢的功能:Date类处理。 基本上,数据库通常至少支持三种形式的日期时间字段,即日期,时间和时间戳。它们每个在JDBC中都有一个对应的类,并且每个都进行了扩展。这三个中的每个的快速语义如下: 对应于SQL DATE,这表示它存储年,月和日,而时,分,秒和毫秒被忽略。此外,sql.Date它与时区无关。 对应于SQ

  • 问题内容: 我可以使用一些指导,说明何时值得使用Joda Time而不是基本的java.util.Date类。有什么好处?Joda Time是让您做Date类无法做的事情,还是使用起来更容易? 另外,我已经看到有关Joda Time是否属于标准API的冲突信息。是否标准? 问题答案: Java的标准日期和时间类(主要是和)具有有限的功能,并且存在许多设计问题。不赞成使用许多构造函数和方法的事实就是

  • 问题内容: 我正在寻找在两个方向上在java.util.Date和javax.xml.datatype.XMLGregorianCalendar之间进行转换的简单方法。 这是我现在正在使用的代码 : 有没有更简单的事情,例如我忽略的一些API调用? 在标准XML日期/时间和Java日期对象之间进行转换似乎是一项非常常规的任务,令我感到惊讶的是,我完全必须编写这段代码。 有什么建议? 注意: 我的J

  • 问题内容: Java 8具有用于日期和时间的全新API。此API中最有用的类之一是,用于保存与时区无关的date-with-time值。 为此目的,可能有数百万行代码使用遗留类。这样,在连接旧代码和新代码时,将需要在两者之间进行转换。由于似乎没有直接的方法可以完成此任务,该怎么办呢? 问题答案: 简短答案: 说明:(基于这个问题有关LocalDate) 尽管有名称,它代表时间轴上的一个瞬间,而不是

  • 问题内容: 我有两个对象:a 和a 。 将它们合并为单个的最佳方法是什么? 这些列在数据库中分别存储。我通过JDBC 和获得它们。 问题答案: 您可以创建两个Calendar实例。在第一个中,您初始化日期,在第二个中,时间。您可以从“时间”实例中提取时间值,并将其设置为“日期”。

  • 问题内容: 我在Jasper Reports中创建了一个报告,该报告仅识别java.util.Date(不是Calendar或Gregorian等)。 有没有办法在当前日期之前7天创建日期? 理想情况下,它看起来像这样: 更新:我对此不够强调:JasperReports无法识别Java Calendar对象。 问题答案: 从现在开始: 从任意: 编辑:如其他答案所指出,如果这是一个因素,则不考虑夏