JAVASE(Date)

来源:互联网 发布:算卦一条街源码 编辑:程序博客网 时间:2024/05/17 22:58

Date与DateFormat

import java.util.Calendar;
import java.util.Date;

public class TestFour {    /**     * Date和DateFormat     * java中用于描述日期的类,Date内部维护着一个long     * 值,这个值表示的是1970-1-1 00:00:00到Date所     * 表示的日期之间的毫秒值     */    public static void main(String[] args) {        Date date = new Date();    //创建一个Date实例,默认的构造方法创建的日期代表当前系统时间    //输出Date对象        System.out.println(date);    //GMT:格林威治时间,世界上计时流行的标准,中国所属时区为+8区,    //对世界上的小时+8    //查看date内部的毫秒zhi        long time = date.getTime();        System.out.println(time);    //可以设置一个时间让Date表示该日期,一天后的当前时间        date.setTime(time+1000*10*10*24);        System.out.println(date);    //千年虫问题    /**     * Calendar类:日历类     * Calendar不存在千年虫问题,并且可以非常方便的我们计算毫秒值     * date描述怎么计算     * 需求:得知下个月1号的日期     */        Calendar calendar = Calendar.getInstance();    //通过Calendar的静态方法获取一个实例,该方法会自行决定时区,帮我们创建Calendar实例,    //该方法会根据当前系统所在地区来决定时区    //这里要注意,实际上根据不同的地区,Calendar有若干个子类实现,而Calendar本身是抽象    //类,不能被实例化,我们不需要关心创建的实例具体为哪个子类,我们只需要根据Calendar    //规定的方法来使用就可以了    //构造出来表示当前时间的日历类    //日历类所解决的根本问题是简化日期的计算,要想表示某个日期还应使用Date来描述,Calendar    //是可以将其描述的时间转化为Date的,我们只需要调用其getTime()方法就可以获取描述日期的    //Date对象了        Date now = calendar.getTime();    //获取日历所描述的日期        System.out.println(now);    //通过日历计算时间        calendar.set(Calendar.YEAR, 2012);//2012年    //为日历类设置时间,日历类设置时间使用通用方法set,set(int field,int value)    //field为时间分量,Calendar提供了相应的常量值,value:对应的值        System.out.println(calendar.getTime());    //设置日历表示11月        calendar.set(Calendar.MONTH, 11);    //月份的值是从0开始,所以0代表1月以此类推,也可以使用Calendar的常量    //设置日历表示15号        calendar.set(Calendar.DAY_OF_MONTH, 135);    /**     * DAY_OF_MONTH 月里面的天 --号     * DAY_OF_WEEK  星期里的天 --     * DAY_OF_YEAR  年里的天     */        calendar.add(Calendar.DAY_OF_YEAR, 22);    //想得知22天后是哪天        System.out.println(calendar.getTime());    //想得知5天前是哪天        calendar.add(Calendar.DAY_OF_YEAR, -5);        System.out.println(calendar.getTime());    //想得知1个月后是哪天        calendar.add(Calendar.MONTH, 1);        System.out.println(calendar.getTime());    //想获取当前日历表示的日期中的某个时间单位,可以使用get方法        int year = calendar.get(Calendar.YEAR);        int month = calendar.get(Calendar.MONTH)+1;        int day = calendar.get(Calendar.DAY_OF_MONTH);    //month要处理        System.out.println(year+month+day);    }}