java的Calendar,获取月份少一月的问题及其它注意事项:
首先需要注意的是Calendar在初始化的时候需要通过调用Calendar.getInstance()来实现的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import
java.util.*;
public
class
DateClass{
public
static
void
main(String args[ ]){
Date m =
new
Date( );
System.out.println(
"现在是:"
+m.toString( ));
Calendar n = Calendar.getInstance( );
int
year = n.get(Calendar.YEAR);
int
month = n.get(Calendar.MONTH)+
1
;
int
day = n.get(Calendar.DATE);
int
week = n.get(Calendar.DAY_OF_WEEK);
Date t = n.getTime ( );
String weekArr =
new
String(
"日一二三四五六"
);
String weekIndexStr=weekArr.substring(week-
1
, week);
String x =
new
String( );
x =
"现在是:"
+year+
"年"
+month+
"月"
+day+
"日,星期"
+weekIndexStr;
System.out.println(
"现在是:"
+t); System.out.println(x);
}
}
|
Calendar.MONTH ,这是一个特殊于日历的值。
在格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0;最后一个月取决于一年中的月份数。
所以这个值的初始值为0,所以我们用它来表示日历月份时需要加1
Calender.day_of_week ,指示一个星期中的某天。
该字段可取的值为 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY 。
我们知道DAY_OF_WEEK是获取当前日期是一周中的第几天,
而一周从周日算起,因此当我们取得这个值之后,为了要正确的截取出随后的字符串week1中的那个中文字符,因此它需要减1来达到目的。
转自Blog: https://www.cnblogs.com/chenjfblog/p/7699096.html
其他一些常用函数:
* public void add(int field,int amount):根据给定的日历自动和值,改变时间
* public final void set(int year,int month,int date):设置年月日
例子:
Calendar c = Calendar.getInstance();
c.get(Calendar.YEAR)
c.add(Calendar.YEAR, -3);
c.set(2012, 3, 4);//注意这里最终会显示:2012-4-4