java关于时间的操作,涉及两个操作时间 的类:Date 与 Calendar
操作时间主要涉及如何获取时间,如何获取指定格式的时间,当然也涉及时间的加加减减等运算。
具体使用方法,请看类的相关注释:
Date类:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
DateTest();
}
private static void DateTest() {
// 取得Date对象,获取了当前的时间。
Date date = new Date();
// 以默认的日期格式打印当前时间,通常我们需要将日期的格式转化为我们所需要的日期格式,通常要用到SimpleDateFormat这个类
System.out.println(date);
// 其实Date类也有很多操作时期的方法,只是几乎都是过时不推荐使用的方法。而使用
// SimpleDateFormate也同样可以让我们很方便的对日期进行处理。
// 对SimpleDateFormate的构造参数,可以参考Api进行设置,而且参数是很灵活的。
SimpleDateFormat sdf = new SimpleDateFormat(
"时区:Z yyyy年MM月dd日 E 第w周 hh:mm:ss");
// 将日期进行格式化
String strDate = sdf.format(date);
System.out.println(strDate);
// 获取构造参数
System.out.println(sdf.toPattern());
}
}
Calendar类:
* Calendar没有构造方法,是通过Calendar.getInstance()方法来获取的,使用了单例设计模式。
* Calendar的出现是因为Date的局限性,Calendar可以很方便的操作关于年,月,日,日期运算等
import java.util.Calendar;
/*
* Calendar没有构造方法,是通过Calendar.getInstance()方法来获取的,使用了单例设计模式。
* Calendar的出现是因为Date的局限性,Calendar可以很方便的操作关于年,月,日,日期运算等
* */
public class CalendarTest {
public static void main(String[] args) {
//test1();
//test2();
//test3();
}
//对日期的一些简单操作。
private static void test2() {
Calendar calendar = Calendar.getInstance();
// 月份是由0开始的下标
String months[] = { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月",
"九月", "十月", "十一月", "十二月" };
// 一星期是从星期天开始的,下标从1开始。
String weeks[] = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
System.out.println((calendar.get(Calendar.YEAR) + "年"));
System.out.println((months[calendar.get(Calendar.MONTH)]));
System.out.println((calendar.get(Calendar.DAY_OF_MONTH) + "日"));
System.out.println((weeks[calendar.get(Calendar.DAY_OF_WEEK)]));
}
// 日期的运算,获取二月有多少天。
private static void test3() {
Calendar calendar = Calendar.getInstance();
// 设置时间为2008年3月1日
calendar.set(2008, 2, 1);
// 让时间减少一天。就是此时二月的最后一天的时间。
calendar.add(Calendar.DAY_OF_MONTH, -1);
System.out.println(calendar.get(Calendar.YEAR)+"年的二月共有"+calendar.get(Calendar.DAY_OF_MONTH)+"天");
}
// 日期的没
private static void test1() {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
// 这是输入出的结果,可以看出Calendar对象中封装了很多当前时间的数据,这些数据都是可以直接操作的。
/*
* java.util.GregorianCalendar[time=1362582016704,areFieldsSet=true,
* areAllFieldsSet
* =true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai"
* ,
* offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule
* =null],
* firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2013,MONTH=2,
* WEEK_OF_YEAR
* =10,WEEK_OF_MONTH=2,DAY_OF_MONTH=6,DAY_OF_YEAR=65,DAY_OF_WEEK=4,
* DAY_OF_WEEK_IN_MONTH
* =1,AM_PM=1,HOUR=11,HOUR_OF_DAY=23,MINUTE=0,SECOND=16,MILLISECOND=704,
* ZONE_OFFSET=28800000,DST_OFFSET=0]
*/
}
}