我在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我不理解112比特,我原以为是2012年。到底怎么回事?java.util.Date类不可用吗?我将其作为字段存储在我的几个类中,以存储日期和时间。我该怎么办?
发布于 2012-02-12 04:02:43
根据javadoc:
@Deprecated
public int getYear()已弃用JDK1.1版的. As,由Calendar.get(Calendar.YEAR) - 1900取代。
返回一个值,该值是从年份中减去1900的结果,该年份包含此Date对象所表示的时间瞬间或以该时刻开始,按本地时区解释。
返回:此日期表示的年份减去1900。
另请参阅: Calendar
因此112是正确的输出。我会听从Javadoc中的建议,或者使用JodaTime。
发布于 2015-11-26 22:01:28
除了所有的评论之外,我想我可能会根据javadoc添加一些关于如何使用java.util.Date、java.util.Calendar和java.util.GregorianCalendar的代码。
//Initialize your Date however you like it.
Date date = new Date();
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
//Add one to month {0 - 11}
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);发布于 2013-12-17 19:43:36
使用日期格式
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = format.parse(datetime);
SimpleDateFormat df = new SimpleDateFormat("yyyy");
year = df.format(date);https://stackoverflow.com/questions/9243578
复制相似问题