**
字符串日期的处理-----获取日期的一系列信息
在开发中经常遇到需要获取字符串类型的日期的一系列信息,如下午还是上午,一个月中的第几天,这周的星期几等信息…
这里需用到java.util.Calendar类。Calendar是一个抽象类,我们无法直接实例化它,它有一个具体子类实体类java.util.GregorianCalendar,这个类实现的就是我们日常所用的公历历法,或者叫做阳历。我们可以直接使用new命令创建它的实例,或者使用Calendar类的getInstance方法来获得它实例.
Calendar c1 = Calendar.getInstance();
Calendar c2 = new GregorianCalendar();
// 参数含义依次为:年、月、日(、时、分、秒 ),
Calendar c3 = new GregorianCalendar(2008, 8, 8, 18, 10, 5);
下面的代码是如何将一个字符串的日期转换为Calendar ,获取所需的信息:
/**
* 把传入的日期串转换成 Calendar , 格式是 yyyyMMdd或 yyyyMMddHHmmss
* @param baseDate 日期串
* @return
*/
public static Calendar parseDateTime(String baseDate)
{
Calendar cal = null;
cal = new GregorianCalendar();
int yy = Integer.parseInt(baseDate.substring(0, 4));
int mm = Integer.parseInt(baseDate.substring(4, 6)) -1 ; // 月份是实际月份减一
int dd = Integer.parseInt(baseDate.substring(6, 8));
int hh = 0;
int mi = 0;
int ss = 0;
if(baseDate.length() > 8)
{
hh = Integer.parseInt(baseDate.substring(8, 10));
mi = Integer.parseInt(baseDate.substring(10, 12));
ss = Integer.parseInt(baseDate.substring(12, 14));
}
cal.set(yy, mm, dd, hh, mi, ss);
return cal;
}
/**
* 一周中的第几天,对应星期几,第一天为星期日,于此类推
* @param strDate
* @return
*/
public static int getDAY_OF_WEEK(String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.DAY_OF_WEEK);
}
/**
* 上下午标识,上午返回Calendar.AM=0,下午返回Calendar.PM=1
* @param strDate
* @return
*/
public static int getAM_PM(String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.AM_PM);
}
/**
* 一个月中的第几天,同Calendar.DAY_OF_MONTH
* @param strDate
* @return
*/
public static int getDATE (String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.DATE );
}
/**
* 一个月中的第几天,同Calendar.DATE
* @param strDate
* @return
*/
public static int getDAY_OF_MONTH (String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.DAY_OF_MONTH );
}
/**
* 这一天所对应的星期几在该月中是第几次出现
* @param strDate
* @return
*/
public static int getDAY_OF_WEEK_IN_MONTH (String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.DAY_OF_WEEK_IN_MONTH );
}
/**
* 一年中的第几天
* @param strDate
* @return
*/
public static int getDAY_OF_YEAR (String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.DAY_OF_YEAR );
}
/**
* 12小时制下的小时数,中午和午夜表示为0
* @param strDate
* @return
*/
public static int getHOUR (String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.HOUR );
}
/**
* 毫秒数
* @param strDate
* @return
*/
public static int getMILLISECOND (String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.MILLISECOND );
}
/**
* 分钟
* @param strDate
* @return
*/
public static int getMONTH (String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.MONTH );
}
/**
* 秒
* @param strDate
* @return
*/
public static int getSECOND (String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.SECOND );
}
/**
* 一个月中的第几个星期
* @param strDate
* @return
*/
public static int getWEEK_OF_MONTH (String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.WEEK_OF_MONTH );
}
/**
* 一年中的第几个星期
* @param strDate
* @return
*/
public static int getWEEK_OF_YEAR (String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.WEEK_OF_YEAR );
}
/**
* 年份
* @param strDate
* @return
*/
public static int getYEAR (String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.YEAR);
}
(完)
---------------------------------欢迎留言--------------------------------------------
---------------------如果对你有帮助,请点个赞---------------------------------