字符串日期的处理-----获取日期的一系列信息

**

字符串日期的处理-----获取日期的一系列信息

在开发中经常遇到需要获取字符串类型的日期的一系列信息,如下午还是上午,一个月中的第几天,这周的星期几等信息…
这里需用到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);
        }
 
 (完)

---------------------------------欢迎留言--------------------------------------------
---------------------如果对你有帮助,请点个赞---------------------------------

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厌学的小骚年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值