Date,Calendar,SimpleDateFormat时间操作整理
Posted 红色小宇宙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Date,Calendar,SimpleDateFormat时间操作整理相关的知识,希望对你有一定的参考价值。
前段时间做了一个倒计时的功能,用到了Date,Calendar,SimpleDateFormat,对它们之间的关系模糊,所以在这进行整理,也加强自己对它们之间关系的认识,同时也方便下次使用:
1,时间
Date date = new Date(); //初始化时间(当前时间为系统默认) //以毫秒的方式获取时间 long times = date.getTime();//返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 date.setTime(long times);//设置时间为指定的long时间 Date date = new Date(times);//初始化时间(当前时间为指定的时间)
2,时间Date和String之间的转换:
1 SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 2 //把时间转换为指定字符串格式 3 String time = simpledateformat.format(new Date()); 4 //把指定字符串格式转换为时间 5 Date date = simpledateformat.parse(time);
2,时间的获取与加减:
Calendar calendar = new GregorianCalendar();
//返回一个表示此Calendar
时间值(从历元至现在的毫秒偏移量)的Date
对象。
Date date = calendar.getTime();
int year = calendar.get(Calendar.YEAR); //获取年; int month = calendar.get(Calendar.MONTH); //获取月; int date = calendar.get(Calendar.DATE); //获取天; int hour = calendar.get(Calendar.HOUR); //获取小时; int minute = calendar.get(Calendar.MINUTE); //获取分钟; int second = calendar.get(Calendar.SECOND); //获取秒钟; int hour_of_day = calendar.get(Calendar.HOUR_OF_DAY); //第几个小时, int day_of_month = calendar.get(Calendar.DAY_OF_MONTH); //这天,在一个月内是第几天. int day_of_week = calendar.get(Calendar.DAY_OF_WEEK); //这天,在一周内,是第几天. int day_of_year = calendar.get(Calendar.DAY_OF_YEAR); //这天,在一年内,是第几天。 int week_of_year = calendar.get(Calendar.WEEK_OF_YEAR); //这周,在一年内是第几周; int week_of_month = calendar.get(Calendar.WEEK_OF_MONTH);//这周,在这个月是第几周;以以星为标准; int zone_offset = calendar.get(Calendar.ZONE_OFFSET); //获取时区; int day_of_week_in_month = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH); //某月中第几周,按这个月1号算,1号起就是第1周,8号起就是第2周。以月份天数为标准 //设置月份05;代表日历的月份6月,因为月份从0开始。 calendar.clear(); //注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间 calendar.set(Calendar.MONTH, 05); //设置日历的月份是6月 int months = calendar.get(Calendar.MONTH); System.out.println(months); //输出05;(实际是6月) //设置日历日期为2011-07-24 09:59:50 calendar.set(2011, 06, 24, 9, 59, 50); String getDate = date_format.format(calendar.getTime()); System.out.println(getDate); //输出2011-07-24 09:59:50; //设置日历为当前时间,也可以是任意date值。 calendar.setTime(new Date()); //加减(年月日。。都一样) calendarNew.add(Calendar.DATE, 1); //当前日期上加一天(明天) calendarNew.add(Calendar.DATE, -1); //当前日期上减一天(昨天) //比较日前大小; //getTimeInMillis() 返回此 Calendar 的时间值,以毫秒为单位,long类型。 if(new Date().getTime() > calendar.getTimeInMillis()){ System.out.println("当前日期在后!"); }else{ System.out.println("当前日期在前!"); } // 创建一个 Calendar 用于比较时间 Calendar calendarNew = Calendar.getInstance(); // 设定为 5 小时以前,后者大,显示 -1 calendarNew.add(Calendar.HOUR, -5); System.out.println("时间比较:" + calendarNew.compareTo(calendar)); // 设定7小时以后,前者大,显示 1 calendarNew.add(Calendar.HOUR, +7); System.out.println("时间比较:" + calendarNew.compareTo(calendar)); // 退回 2 小时,时间相同,显示 0 calendarNew.add(Calendar.HOUR, -2); System.out.println("时间比较:" + calendarNew.compareTo(calendar));
以上是关于Date,Calendar,SimpleDateFormat时间操作整理的主要内容,如果未能解决你的问题,请参考以下文章
Java学习笔记4.5.1 日期时间 - Date类与Calendar类