A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Kris 中级黑马   /  2015-10-29 08:00  /  669 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

日期类是个比较小的知识点,但不注意的话也容易出错,Calendar是个很强大的日期类,但MONTH字段范围是0-11,这个比较特殊:

1:Date
        (1)日期类。
        (2)完成如下操作(日期和毫秒值的转换)
                Date -- long
                Date date = new Date();
                long time = date.getTime();

                long -- Date
1.Date date = new Date(long time);
2.Date date = new Date();
  date.setTime(long time);



        (3)DateFormat类(日期和字符串的转换)
                String -- Date
               
                自定义类型格式转换为系统格式为解析
                String s = "2015-10-27"
                SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
                Date date =sdf.parse(s);

                Date -- String
                系统时间转换为自定义格式为日期的格式化
                Date date = new Date();//获取系统时间
                SimpleDateFormat sdf =new SimpleDateFormat("yyyy年MM月dd日 E HH:mm:ss");
                //加E表示星期
                String s = sdf.format(date);

2:Calendar
        (1)Calendar是日历类,它可以获取任意指定日历值,然后自由组合。
        (2)成员方法:
                get(日历字段):根据给定的日历字段获取值
                set(年,月,日):给日历设定指定的年,月,日
                add(日历字段,值):给指定的日历字段添加或者减去给定的值。取决于值的正负。
//获取当前的日历对象
Calendar calendar = Calendar.getInstance();
//获取年
int year = calendar.get(Calendar.YEAR);
//获取月
int month = calendar.get(Calendar.MONTH)+1; //月份为0-11
//日
int date = calendar.get(Calendar.DATE);    等同于DAY_OF_MONTH
//小时
int hour = calendar.get(Calendar.HOUR_OF_DAY);  //HOUR表示12小时制,HOUR_OF_DAY表示24小时制的。
//分
int minute = calendar.get(Calendar.MINTUE)
//秒
int second = calendar.get(Calendar.SECOND)
///////有calendar对象后,不做设定表示当前系统时间值,可自行设定时间
//设定特定字段
calendar.set(Calendar.YEAR,2000);
calendar.set(Calendar.MONTH,10) //设定的是10月就是10月,如果系统的话会取9,因为系统MONTH范围为:0-11
//一起设定
calendar.set(2012,6,8)  // calendar.set(2008,6,8,08,30,01)
//add方法,对指定字段进行加减操作
calendar.add(Calenar.YEAR,1)   年数+1
calendar.add(Calendar.MONTH,-1)  月数减1
calendar.add(Calendar.DAY_OF_MONTH,-5) 日期减少5天

实例:任意一年的二月份有多少天 (三月一号减去一天)
Calendar calenar = Calenar.getInstance();
calendar.set(year,2,1)  //     设定2才是3月,因为系统设定月份范围为0-11
calendar.add(Calendar.DATE,-1)
int date = calendar.get(Calendar.DATE);

8 个回复

倒序浏览
额。。。。。。。。。。。
回复 使用道具 举报
zhangyibo 来自手机 中级黑马 2015-10-29 10:06:57
藤椅
总结的好啊
回复 使用道具 举报
今天刚看了一遍
回复 使用道具 举报
很好的总结以后好好学习,一直都没有很好的掌握对日期的熟练操作。
回复 使用道具 举报
顶一个!!
回复 使用道具 举报
正好这方面不太熟,你的帖子帮助我复习了呢!给力!
回复 使用道具 举报
Kris 中级黑马 2015-10-30 07:47:04
8#
不好意思,这里有个错误:
calendar.set(Calendar.MONTH,10) //设定的是10月就是10月

设定的的MONTH字段也都是0-11的,实际月份都要+1.
回复 使用道具 举报
比较陌生,知道挺重要的。视频课程讲的少。回过头还要复习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马