java-Date、SimpleDateFotmat、Calendar

来源:互联网 发布:php实现分页代码的思路 编辑:程序博客网 时间:2024/05/29 23:48
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * java中的时间使用标准类库的Date类表示,是用距离一个固定时间点的毫秒数(可正可负 long类型)表达一个特定的时间点 * 距离UTC(世界调整时间) 1970年1月1日 00:00:00   CST *java.util.Date类封装日期及时间信息,由于Date设计存在缺陷,所以在jdk1.1以后大部分方法被声明过时的,不再建议使用。 *现在仅仅用来表示时间。而与时间相关的操作全部使用Calendar来替代 * */public class DateDemo {    public static void main(String[] args) throws ParseException {        Date date=new Date();        //系统当前的日期及时间信息,Date重写了toString()方法,用一个字符串来描述当前Date对象所表示的时间。        System.out.println(date);//Sat Jul 29 09:39:49 CST 2017        /**使用setTime和getTime设置及获取时间**/        long time=date.getTime();        System.out.println(time);//1970年1月1日至今的毫秒数        time+=60*60*24*1000;        date.setTime(time);        System.out.println(date);//Sun Jul 30 09:57:35 CST 2017        /**         * SimpleDateFormat         * java.text.SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。允许日期->文本,文本->日期         * y:年  M:月 d:日 H:24小时制  h:12小时制  m:分钟  s:秒 E:星期 a:上午下午         * String format(Date date)按照SDF指定的日期格式将给定的date表示的日期转换为字符串         * Date parse(String str)方法用于按照特定格式将表示是安静的字符串转换为Date对象         */        Date now=new Date();        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 -E-a HH:mm:ss");//2017年07月29日 -星期六-下午 15:33:10        System.out.println(sdf.format(now));//日期转换字符串        String str="2017-07-12 15:12";        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm");        System.out.println(sdf1.parse(str));//字符串转换为时间        /**         * Calendar         * java.util.Calendar类用于封装日历信息,其主要作用在于方法可以对时间分量进行运算         * Calendar是抽象类,其具体子类针对于不同国家的日历系统,其中应用最广泛的是GregorianCalendar(格里高利历,阳历)         * Calendar提供了一个静态方法getInstance来更具当前系统所在地区返回一个适用的实现类,大部分地区返回的都是阳历实现类         *          * Date getTime():Calendar提供的该方法可以获取一个Date对象,该对象就表示当前Calendar所表示的日期         * void setTime(Date date):使当前Calendar表示给定的Date所表示的日期         */        Calendar calendar=Calendar.getInstance();//当前系统时间        System.out.println(calendar);//重写了toString,但是直观看不出日期        Date date1=calendar.getTime();        System.out.println(date1);        /**         * Calendar提供了方法:         * int get(int field):该方法可以获取当前Calendar中指定时间分量所对应的值         * 时间分量是一个int值,在Calendar中有大量的常量定义了不同的时间分量         */        int year=calendar.get(Calendar.YEAR);//年        int month=calendar.get(Calendar.MONTH)+1;//月  是从0开始的        int day=calendar.get(Calendar.DAY_OF_MONTH);//月中的天 几号        int day1=calendar.get(Calendar.DAY_OF_WEEK);//周中的天 星期几        int day2=calendar.get(Calendar.DAY_OF_YEAR);//年中的天  今年的第几天        int day3=calendar.get(Calendar.DATE);//DATE等同于DAY_OF_MONTH 月中的天        int hour=calendar.get(Calendar.HOUR);//12小时制        int hour1=calendar.get(Calendar.HOUR_OF_DAY);//24小时制        int minute=calendar.get(Calendar.MINUTE);//分钟        int second=calendar.get(Calendar.SECOND);//秒        System.out.println(year+"-"+month+"-"+day+"-"+hour1+":"+minute+":"+second);//2017-7-29-15:33:10        /**int getActualMaximum(int field):给定此Calendar的时间值,返回指定日历字段可能拥有的最大值**/        int max=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);        System.out.println("本月"+max+"天");//本月31天        System.out.println("本年"+calendar.getActualMaximum(Calendar.DAY_OF_YEAR)+"天");//本年365天        /**         * void set(int field,int value)         * 对指定时间分量设定指定的值         * 表示2008-08-13 20:07:46         */        calendar.set(Calendar.YEAR, 2008);        calendar.set(Calendar.MONTH,Calendar.AUGUST);        calendar.set(Calendar.DAY_OF_MONTH,13);        calendar.set(Calendar.HOUR_OF_DAY,20);        calendar.set(Calendar.MINUTE, 7);        calendar.set(Calendar.SECOND, 46);        System.out.println(calendar.getTime());//Wed Aug 13 20:07:46 CST 2008        /**         * void add(int field,int value)         * 对指定时间分量加上给定的值,若给定对的值为负数则是减去给定的值         */        Calendar c=Calendar.getInstance();        c.add(Calendar.YEAR, 3);//加三年        c.add(Calendar.MONDAY, 2);//加2个月        c.add(Calendar.DAY_OF_YEAR, 5);//加5天//      c.set(Calendar.DAY_OF_WEEK, 2);//设置为当周的周一        System.out.println(c.getTime());    }}
原创粉丝点击