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时间操作整理的主要内容,如果未能解决你的问题,请参考以下文章

Date String Calendar之间的转换

Date和Calendar

Calendar代替Date常用方法小记

Java学习笔记4.5.1 日期时间 - Date类与Calendar类

Calendar和Date 主要是Calendar日历类的一些语法

Java Calendar Date使用总结