package com.qw.test;
import java.util.Calendar;
public class A {
public static void main(String[] args) {
Calendar cl = Calendar.getInstance();
System.out.println(cl.toString());
System.out.println("年:" + cl.get(Calendar.YEAR));
/**
* 此处获取到的月份值是从0开始的,也就是说0代表一月,所以在使用的时候记得将其值加1
*/
System.out.println("月:" + (cl.get(Calendar.MONTH) + 1));
System.out.println("日:" + cl.get(Calendar.DAY_OF_MONTH));
/**
* 需再处理,在西方星期从周日开始计算,所以1表示周日,然后2表示周一,以此类推。
* 通常我们将DAY_OF_WEEK取得的值减1,完成周一到周六的数值对应,特殊处理减一后, 表示周日的0
*/
int dayOfWeek = cl.get(Calendar.DAY_OF_WEEK) - 1;
dayOfWeek = dayOfWeek == 0 ? 7 : dayOfWeek;
System.out.println("星期:" + dayOfWeek);
System.out.println("该月中第几周:" + (cl.get(Calendar.DAY_OF_WEEK_IN_MONTH)));
System.out.println("该年中第几天:" + cl.get(Calendar.DAY_OF_YEAR));
System.out.println("12小时制_时:" + cl.get(Calendar.HOUR));
System.out.println("24小时制_时:" + cl.get(Calendar.HOUR_OF_DAY));
System.out.println("AM/PM:" + cl.get(Calendar.AM_PM)); // 0:AM,1:PM
System.out.println("分:" + cl.get(Calendar.MINUTE));
System.out.println("秒:" + cl.get(Calendar.SECOND));
System.out.println("毫秒:" + cl.get(Calendar.MILLISECOND));
System.out.println("\n----------add使用----------------增加5小时");
cl.add(Calendar.HOUR, 5); // 对指定的域做加法,此处是将时间增加5小时
System.out.println("日:" + cl.get(Calendar.DAY_OF_MONTH));
System.out.println("12小时制_时:" + cl.get(Calendar.HOUR));
System.out.println("24小时制_时:" + cl.get(Calendar.HOUR_OF_DAY));
System.out.println("AM/PM:" + cl.get(Calendar.AM_PM)); // 0:AM,1:PM
System.out.println("\n-------roll/add比较------------");
Calendar cl2 = Calendar.getInstance();
Calendar cl3 = Calendar.getInstance();
cl2.roll(Calendar.HOUR, 24); // 对指定的域做加法,此处是将时间增加24小时
cl3.add(Calendar.HOUR, 24); // 对指定的域做加法,此处是将时间增加24小时
System.out.println("日(roll后):" + cl2.get(Calendar.DAY_OF_MONTH)); // 未发生进位运算
System.out.println("日(add后):" + cl3.get(Calendar.DAY_OF_MONTH)); // 发生进位运算
System.out.println("12小时制_时:" + cl2.get(Calendar.HOUR));
System.out.println("24小时制_时:" + cl2.get(Calendar.HOUR_OF_DAY));
/**
* 关于Calendar还有很多set\get、时间比较方法,都相当简单,请自行使用就好
* 以下示例,对指定域的值进行设置,如果该值超出该域最大值范围,自动修正, 可能会导致进位、退位运算
*/
Calendar cl4 = Calendar.getInstance();
System.out.println("\n-------set使用------------");
cl4.set(Calendar.HOUR, 37);
System.out.println("日:" + cl4.get(Calendar.DAY_OF_MONTH));
System.out.println("12小时制_时:" + cl4.get(Calendar.HOUR));
System.out.println("24小时制_时:" + cl4.get(Calendar.HOUR_OF_DAY));
}
}
代码运行结果:
java.util.GregorianCalendar[time=1430099850981,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=”GMT+08:00”,offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2015,MONTH=3,WEEK_OF_YEAR=18,WEEK_OF_MONTH=5,DAY_OF_MONTH=27,DAY_OF_YEAR=117,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=9,HOUR_OF_DAY=9,MINUTE=57,SECOND=30,MILLISECOND=981,ZONE_OFFSET=28800000,DST_OFFSET=0]
年:2015
月:4
日:27
星期:1
该月中第几周:4
该年中第几天:117
12小时制_时:9
24小时制_时:9
AM/PM:0
分:57
秒:30
毫秒:981
———-add使用—————-增加5小时
日:27
12小时制_时:2
24小时制_时:14
AM/PM:1
——-roll/add比较————
日(roll后):27
日(add后):28
12小时制_时:9
24小时制_时:9
——-set使用————
日:28
12小时制_时:1
24小时制_时:13