黑马程序员技术交流社区

标题: 关于日期类总结 [打印本页]

作者: Kris    时间: 2015-10-29 08:00
标题: 关于日期类总结
日期类是个比较小的知识点,但不注意的话也容易出错,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);

作者: zzwzz    时间: 2015-10-29 09:35
额。。。。。。。。。。。
作者: zhangyibo    时间: 2015-10-29 10:06
总结的好啊
作者: 逝风    时间: 2015-10-29 12:17
今天刚看了一遍
作者: 顽固派。    时间: 2015-10-29 12:52
很好的总结以后好好学习,一直都没有很好的掌握对日期的熟练操作。
作者: 切比雪夫    时间: 2015-10-29 21:58
顶一个!!
作者: 李志慧    时间: 2015-10-29 22:13
正好这方面不太熟,你的帖子帮助我复习了呢!给力!
作者: Kris    时间: 2015-10-30 07:47
不好意思,这里有个错误:
calendar.set(Calendar.MONTH,10) //设定的是10月就是10月

设定的的MONTH字段也都是0-11的,实际月份都要+1.
作者: 浮光掠影    时间: 2015-10-30 14:16
比较陌生,知道挺重要的。视频课程讲的少。回过头还要复习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2