java时间类泛解

来源:互联网 发布:淘宝的市场定位 编辑:程序博客网 时间:2024/06/05 18:43

时间作为任何一个系统的核心,自然在java最开始设计之初就被考虑到核心类的范畴。

于是在JDK 1.0版本中就诞生了一个Date类,Date类设计之初承载了两个功能:

第一,将时间与各种我们熟知的日期进行转换。Date类承载的时间是距离1970年1月1号00:00:00到当前的毫秒值,所以不方便我们查看,但是年,月,日,时,分,秒等日期就非常适合我们的认知。可以通过Date的一些方法获取当前的各类日期。

第二,解析Date和String。如果有一个字符串例如“2015-03-20”明显是表示一个时间,但是这个时间是不能用来计算的,为了计算,我们就需要把这个字符串转换为Date类型。而另外一些时候,为了展示的方便又需要把Date类型转换为字符串。

但是用着用着,人们发现Date类功能不够强大,很多地方有限制。但是因为Date类已经承载了这么多功能,所以扩展起来会越来越复杂也不符合oo,或者其他一些原因。于是人们就把Date类的功能分解到两个类Calendar类(承载了第一个功能)和DateFormat类(承载了第二个功能)。所以从jdk 1.1之后Date就很多方法都被标记为不建议使用,但是由于Date是核心类之一,而且很多一些系统或软件在设计和开发的时候都使用的Date,所以Date一直被保留而且还不断被使用。

下面展示一个打印日历的小demo

package com.amber.ivy;


import java.text.DateFormatSymbols;
import java.util.Calendar;


/**
 * 打印输出一个日历
 * @author ivyamber
 *
 */
public class CalendarDemo 
{
public CalendarDemo()
{
}
/**
* 打印给定日期所属月份的日历
* @param c 给定日期
*/
public void printCalendar(Calendar c)
{
DateFormatSymbols ds = new DateFormatSymbols();
String[] weekdays = ds.getShortWeekdays();//获取日历头部的星期
int today = c.get(Calendar.DAY_OF_MONTH);//记录当前日期
int month = c.get(Calendar.MONTH);//记录当前月份
//获取本月的第一天,并求出缩进
int indent = 0;//缩进量
c.set(Calendar.DAY_OF_MONTH, 1);
int firstDayOfWeek = c.getFirstDayOfWeek();
while(c.get(Calendar.DAY_OF_WEEK) != firstDayOfWeek)
{
indent++;
c.add(Calendar.DAY_OF_MONTH, -1);
}
//将日期设置为当月第一天,准备打印日历
c.add(Calendar.DAY_OF_MONTH, indent);
//打印日历头
for(String day:weekdays)
{
System.out.printf("%4s",day);
}
System.out.println();//换行
//打印缩进
for(int i=0;i<indent;i++)
{
System.out.print("    ");
}
//打印日期
while(c.get(Calendar.MONTH) == month)
{
if(c.get(Calendar.DAY_OF_WEEK) == c.getFirstDayOfWeek())
{
System.out.println();
}
System.out.printf("%4d",c.get(Calendar.DAY_OF_MONTH));
c.add(Calendar.DAY_OF_MONTH, 1);
}
}
public static void main(String[] args)
{
CalendarDemo cd = new CalendarDemo();
Calendar d = Calendar.getInstance();
cd.printCalendar(d);
}
}

打印2015年一月份日历效果







0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 4个月婴儿睡觉少怎么办 晚上睡觉睡不好老是醒来怎么办 吃了没熟的香蕉怎么办 70岁父母老吵架怎么办 怀孕七个月晚上睡不着怎么办 九个月宝宝睡眠不好怎么办 一个月的宝宝放不下怎么办 宝宝被吓了发烧怎么办 体内火气重睡不着觉怎么办 宝宝睡觉一直翻身发出声音怎么办 严重失眠怎么办整夜睡不着觉 腿疼得睡不着觉怎么办 19岁晚上睡不着该怎么办 工作累的想哭怎么办 心累迷茫想哭怎么办 白天很累晚上又睡不着怎么办 发型睡觉压乱了怎么办 通宵一夜第二天怎么办 夏天了腿脚还凉怎么办 咖啡色三天了月经还是下不来怎么办 睡觉姿势不对腰疼怎么办 来月经吃了香瓜怎么办 减肥期间晚上有饭局怎么办 减肥期间遇到晚上聚餐怎么办 婴儿脸不向上睡怎么办 睡觉压奶了疼怎么办 堵奶了挤不下来怎么办 孕36周胎儿腿短怎么办 孕晚期胎儿腿短怎么办 孕晚期宝宝腿短怎么办 手劳累过度麻痛怎么办 大人发烧40不退怎么办? 颈椎扯的脑袋疼怎么办 孕妇颈椎痛导致失眠怎么办 做完运动脊椎中间痛怎么办? 阴虛阴虚火旺怎么办 脸一躺下就丑怎么办 身体淤堵的厉害怎么办 怀孕晚期脚肿了怎么办 宝宝感冒咳嗽流鼻涕流泪怎么办 孕晚期睡觉习惯面朝右怎么办