我正在使用下面的代码,
private static Date date = new Date (2014-1900,11,25);
System.out.println(date);
显示2014-12-25
。我无法理解为什么它给我的日期为12
?
如果我给
private static Date date = new Date (2014-1900,12,25);
它正在返回2015-01-25
。
任何人都可以帮助理解这个吗?
答案 0 :(得分:3)
它接受December
月作为11
,因为月份从0 - 11
开始
答案 1 :(得分:1)
首先,您不应该使用此构造函数,因为它已被弃用。
第二:请参阅此consturctor的documentation:
参数:年 - 年份减去1900.month - 0-11之间的月份 1-31之间的月份。参见:日历
month是基于null的值,因此0 - > Jan ... 11 - >癸
答案 2 :(得分:0)
来自java docs,
Parameters:
year the year minus 1900.
month the month between 0-11.
date the day of the month between 1-31.
月份范围为0-11, ie Jan - Dec
答案 3 :(得分:-1)
避免使用经过删除的Date()构造函数来设置日期,建议使用Calendar类
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2014);
calendar.set(Calendar.MONTH, Calendar.NOVEMBER);
calendar.set(Calendar.DAY_OF_MONTH, 25);
Date date = calendar.getTime();
您还可以使用simpleDateFormat设置/格式化日期值: -
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date date = sdf.parse("25-11-2014");