黑马程序员_日期对象及格式化

------- android培训java培训、期待与您交流! ----------


Date类

在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象:new

Date(),默认是当前日期;

DateFormat类

此类是一个日期的格式化类,专门格式化日期的操作。因为java.util.Date类本身就已经包含了完整的日期,所以只需要将此日期按照一些好的格式格式化以下就可以很好的显示出来了。此类是一个抽象类,静态方法实例化即可。

 得到日期的DateFormat对象: DateFormat.getDateInstance()

 得到日期时间的DateFormat对象:DateFormat.getDateTimeInstance()

 直接使用DateFormat类完成Date类的转换功能:format(Datedate)

SimpleDateFormat类

此类的功能是完成日期的显示格式化。它可以利用标记如y,M,d,H,m,s,S等制定自己的模板,将一种日期格式变为日历,方法为parse(Date date)。

Calendar类

如果希望可以按照自己需要的格式显示时间,则就可以使用Calendar类。Calendar类是一个抽象类,既然是一个抽象类则肯定无法直接使用,就需要利用静态方法来实例化:Calendar.getInstance(),默认是当前日历。可以向get()方法中输入字段如Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_MONTH、Calendar.DAY_OF_WEEK、Calendar.DAY_OF_YEAR等获取相应日期信息,注意在取得月份的时候要特别注意,需要增加1,一周的第一天为星期日,DAY_OF_WEEK对应数字1,最后一天为星期六,DAY_OF_WEEK对应数字7。

Date类与Calendar类的衔接

可以利用Calendar类的方法setTime(Date date)设置此 Calendar 的当前时间值。

 

这是基础测试中遇到的一个题目,当时想到既然字符串日期可以格式化为Date对象,那可不可以直接格式化为Calender对象,然后再调用get()函数算出星期和一年中的天数,结果查了好久没查到,然后Calender对象加载Date对象也忘了,只好应用字符串的split()方法转化为年月日再设置日历,代码如下:

public class Test9 {

 

         publicstatic void main(String[] args) {

//              用户按指定格式输入一个日期

                Stringdatestring="2014-07-29";

//              讲日期字符串转换成年、月、日

                String[]str=datestring.split("-");

                intyear=Integer.parseInt(str[0]);

                intmonth=Integer.parseInt(str[1])-1;

                intday=Integer.parseInt(str[2]);

//              创建一个日历对象,并设置日期

                Calendarc = Calendar.getInstance();

                c.set(year,month,day);

//              获取星期和天数

                intweek = c.get(Calendar.DAY_OF_WEEK);

                intdayofyear = c.get(Calendar.DAY_OF_YEAR);

//              调用自定义函数,将星期设置为所需格式

                Stringstr_week = getWeek(week);

//              打印结果

                System.out.println("这一天是星期"+str_week+",一年中的第"+dayofyear+"天");

         }

//       定义星期函数

         privatestatic String getWeek(int num) {

                String[]weeks = { "", "日","一", "二", "三","四", "五", "六"};

                returnweeks[num];

         }

}

还好日期没有包含时分秒,要不然就没那么容易了。基础得分9.9分,差0.1分不到满分,可能就是这里出了问题,于是今天又把毕老师的视频教程学习了一遍,终于搞定了这个问题,可以用Calender类的setTime()方法加载Date对象,这样就可以格式化字符串日期了,修改后的代码如下:

public class Test91 {

 

         publicstatic void main(String[] args) throws ParseException {

//              用户按指定格式输入一个日期

                Stringdatestring="2014-07-29";

//              通过自定义的格式将日期字符串格式化,存入日期对象

                DateFormat dateformat=newSimpleDateFormat("yyyy-MM-dd");

                Datedate=new Date();

                date=dateformat.parse(datestring);

//              创建一个日历对象,并设置日期

                Calendarc = Calendar.getInstance();

                c.setTime(date);

//              获取星期和天数

                intweek = c.get(Calendar.DAY_OF_WEEK);

                intdayofyear = c.get(Calendar.DAY_OF_YEAR);

//              调用自定义函数,将星期设置为所需格式

                Stringstr_week = getWeek(week);

//              打印结果

                System.out.println("这一天是星期"+str_week+",一年中的第"+dayofyear+"天");

                System.out.println(c);

         }

         privatestatic String getWeek(int num) {

                String[]weeks = { "", "日","一", "二", "三","四", "五", "六"};

                returnweeks[num];

         }

}


你可能感兴趣的:(黑马程序员_日期对象及格式化)