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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Anlai 中级黑马   /  2015-8-28 12:35  /  492 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

哪位大神能不能总结一下Data和日期工具类及其相关的类,使用方法,定义格式,感激不尽

1 个回复

倒序浏览
有两个类是用来操作日期时间的。
第一个:Date类
Date类
构造方法
     Date();无参构造
     Date(long time);time 是当前时间的毫秒值
怎么获取当前的毫秒值呢?
有两种方法:
第一种:
     通过创建Date类对象,调取getTime方法来获取
     Date d = new Date();
     d.getTime();
第二种:
     System.currentTimeMillis();直接获取
但是Date的日期格式是英文版的,如何打印中国式的日期格式呢?比如2015-08-23 19:05:00
这时就有一个类是可以对时间进行日期格式化模版
DateFormat 但是它是抽象类 所以我们找他的子类
SimpleDateFormat类
构造方法
     SimpleDateFormat();默认初始化是当前语言环境的默认格式符号。
     SimpleDateFormat(String pattern);默认初始化是当前语言环境的给定的格式符号。
yyyy-MM-dd HH:mm:ss
y------年
M------月
d------日
H------小时
m------分钟
s------秒
     String format(Date date);将一个Date对象格式化为一个你设定的日期格式的字符串。
     Date parse(String dateStr);将一个日期字符串转化为一个Date对象。


如何将字符串和日期互转呢?
     日期对象转化为我们想要的日期格式字符串
     还是一样,将用到SimpleDateFormat格式化咯
     Date d = new Date();
     SimpleDateFormat sdf = new SimpleDateFormat(String formatStr);直接把想要的格式放进去,
     调用方法将日期转化为一个新的字符串
     String dateStr = sdf.format(d);
     打印就ok了

     打印当前日期时间 格式为 例如:2015年9月9日 20:10:00
     两步解决
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
     String dateStr = sdf.format(new Date);

     字符串日期转化为日期对象
     String s = "2015-08-23 19:05:00";
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     注意:格式化模版必须要和你想要转为日期对象的格式一样,否则会报错。
     Date d = sdf.parse(s);
     打印就ok了
     
     打印当前时间的Date对象
     syso(new Date);就可以
     
Calendar类(抽象的)
     作用:可以任意提取日期中的任何字段,并随意组合。
            Calendar c = Calendar.getInstance();
          获取年               int year = c.get(Calendar.YEAR);               
          获取月               int month = c.get(Calendar.MONTH);
          获取某月的几日       int date = c.get(Calendar.DATE);
          获取小时             int hour = c.get(Calendar.HOUR_OF_DAY);
          获取分钟             int minute = c.get(Calendar.MINUTE);
          获取秒               int second = c.get(Calendar.SECOND);

     例题:计算某一年2月份有多少天?
          思路:
          1.创建Calendar对象,咦?Calendar是抽象类,怎么可以创建对象呢?
          咋办呢?对 多态 Calendar中提供了一个方法 static Calendar getInstance可以将创建一个Calend对象
               static Calendar getInstance 返回Calendar类型获取一个日历,基于当前时间。
          Calendar c = Calendar.getInstance();
          2.将Calendar对象的日期设置到3月一日。
               c.set(2013,3,1);
          3.将日期向前推一天。                 
               c.add(Calendar.DATE, -1);
          4.输出打印即可。














回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马