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