时间日期处理类

转载 2012年03月30日 14:41:05
/**
 *<p>日期通用类,部分代码来源于网友,自己通过整理以备使用</p>
 *整理者:    Qingbao-gao
 *Blong:http://www.blogjava.net/1504
 *E-mail:yyk1504@163.com
 *QQ:251218333
 *<p>2009-3-6 下午02:15:08</p>
*/
package com.hjt.tcmsp.common;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class DateUtil
{
    /**
     * <p>获得时间对应的星期数</p>
     * @param dateString
     */
    public static void getWeek(String dateString)
    {
          final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五","星期六" };
          SimpleDateFormat sdfInput = new SimpleDateFormat("yyyy-MM-dd HH:mm");
          Calendar calendar = Calendar.getInstance();
          @SuppressWarnings("unused")
          Date date = new Date();
          try
          {
              date = sdfInput.parse(dateString);
          }
          catch (ParseException e)
          {
              e.printStackTrace();
          }
          int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK)-1;
          if(dayOfWeek<0)dayOfWeek=0;
          System.out.println(dayNames[dayOfWeek]);
    }
    /**
     * <p>以基准日期的天数获得时间对应的星期数</p>
     * @param dateString
     */
    public static void getWeek2(int year,int month,int day)
    {
        int count=0,i=1,j=1970;
        while(j<year)
        {
            if(j%4==0&&j%100!=0||j%400==0) count+=366;
            else count+=365;
            j++;
        }
        while(i<month)
        {
            if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) count+=31;
            if(i==4||i==6||i==9||i==11) count+=30;
            if(i==2)
                if(year%4==0&&year%100!=0||year%400==0) count+=29;
                else count+=28;
            i++;
        }
        count+=day;
        switch(count%7)
        {
            case 1:System.out.println("星期四");break;
            case 2:System.out.println("星期五");break;
            case 3:System.out.println("星期六");break;
            case 4:System.out.println("星期天");break;
            case 5:System.out.println("星期一");break;
            case 6:System.out.println("星期二");break;
            case 0:System.out.println("星期三");break;
        }

    }
    /**
     * <p>根据日期返回对应的星期</p>
     * @param date
     * @return 星期
     */
    public static String getFormatDateWeek(Date date)
    {
        SimpleDateFormat bartDateFormat = new SimpleDateFormat("EEEE");
        return bartDateFormat.format(date);
    }

    /**
     * <p>获得指定格式的时间一周时间,按顺序从周一到周日</p>
     * @param dateFormatStr
     * @return 一周时间(中国人习惯)
     */
    @SuppressWarnings("static-access")
    public static String[] getWeekOfDayChina(String dateFormatStr)
    {
           String[] arr=new String[7];
           Date date=null;
           Calendar calendar = Calendar.getInstance();
           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE);
           sdf.applyPattern(dateFormatStr);
           for(int i=1,k=0;i<8;i++,k++)
           {
                calendar.set(Calendar.DAY_OF_WEEK,i);
                if(k>0)
                {
                    date=calendar.getTime();
                    String timeStr = sdf.format(date);
                    arr[i-2]=timeStr;
                       calendar.setTime(date);
                }

           }
               calendar.add(Calendar.DATE,1); 
            date=calendar.getTime();
            String timeStr = sdf.format(date);
            arr[6]=timeStr;
            return arr;
    }
   
    /**
     * <p>获得指定格式的时间一周时间,按顺序从周日到周六</p>
     * @param dateFormatStr
     * @return 一周时间(西方习惯)
     */
    @SuppressWarnings("static-access")
    public static String[] getWeekOfDayEnlish(String dateFormatStr)
    {
           String[] arr=new String[7];
           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE);
           sdf.applyPattern(dateFormatStr);
           int []week={Calendar.SUNDAY,Calendar.MONDAY,Calendar.TUESDAY,Calendar.WEDNESDAY,Calendar.THURSDAY,Calendar.FRIDAY,Calendar.SATURDAY};
           for(int i=0;i<week.length;i++)
           {
                Calendar c = Calendar.getInstance(); 
                Date date=new Date();
                c.setTime(date); 
                c.set(Calendar.DAY_OF_WEEK,week[i]);
                String timeStr=new SimpleDateFormat(dateFormatStr).format(c.getTime());
                arr[i]=timeStr;
           }
           return arr;
    } 
    /**
     * <p>获得时间对应的星期数</p>
     * @param dateString
     */
    public static String  getWeeks(String inputTimeStr)
    {
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE);
          @SuppressWarnings("unused")
          Date date = null;
          try
          {
              date = sdf.parse(inputTimeStr);
          }
          catch (ParseException e)
          {
              e.printStackTrace();
          }
           SimpleDateFormat bartDateFormat = new SimpleDateFormat("EEEE");
           return bartDateFormat.format(date);
    }
    /**
     * <p>返回指定格式的第n天后的时间串</p>
     * @param date
     * @param n
     * @param dateFormatStr
     * @return n天后的时间串
     */
    public static String afterNDay(Date date,int n,String dateFormatStr)
    { 
        Calendar c=Calendar.getInstance(); 
        DateFormat df=new SimpleDateFormat(dateFormatStr); 
        c.setTime(date); 
        c.add(Calendar.DATE,n); 
        Date d=c.getTime(); 
        String s=df.format(d); 
        return s; 
    } 
    /**
     * <p>返回指定格式的第n天后的时间串集合</p>
     * @param date
     * @param n
     * @param dateFormatStr
     * @return n天后的时间串
     */
    public static String[] getAfterNDay(Date date,int n,String dateFormatStr)
    { 
        Calendar c=Calendar.getInstance();
        String []st=new String[n];
        DateFormat df=new SimpleDateFormat(dateFormatStr);
        for(int i=0;i<n;i++)
        {
            c.setTime(date); 
            c.add(Calendar.DATE,i); 
            Date d=c.getTime(); 
            String s=df.format(d);
            st[i]=s;
        }
 
        return st; 
    }
    /**
     * <p>返回指定格式的第n天前的时间串集合</p>
     * @param date
     * @param n
     * @param dateFormatStr
     * @return n天后的时间串
     */
    public static String[] getBeforNDay(Date date,int n,String dateFormatStr)
    { 
        Calendar c=Calendar.getInstance();
        String []st=new String[n];
        DateFormat df=new SimpleDateFormat(dateFormatStr);
        for(int i=n;i<0;i++)
        {
            c.setTime(date); 
            c.add(Calendar.DATE,i); 
            Date d=c.getTime(); 
            String s=df.format(d);
            st[i]=s;
        }
 
        return st; 
    }
   
    /**
     * <p>返回指定格式的第n天后的时间串集合</p>
     * @param date
     * @param n
     * @param dateFormatStr
     * @return n天后的时间串
     */
    public static String[] getAfterNDay(int n,String dateFormatStr)
    { 
        Calendar c=Calendar.getInstance();
        String []st=new String[n];
        Date date=new Date();
       
        DateFormat df=new SimpleDateFormat(dateFormatStr);
        String ss=df.format(date);
        c.setTime(date); 
        c.add(Calendar.DATE,n); 
        Date d=c.getTime(); 
        String s=df.format(d);
        System.out.println(ss);
        System.out.println(s);
        st[0]=ss;
        st[0]=s;
        return st; 
    }

    /**
     * <p>根据指定格式获得时间串</p>
     * @param dateString
     */
    public static String  getFormatDate(String inputTimeStr,String formatStr)
    {
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE);
          @SuppressWarnings("unused")
          Date date = null;
          try
          {
              date = sdf.parse(inputTimeStr);
          }
          catch (ParseException e)
          {
              e.printStackTrace();
          }
           SimpleDateFormat bartDateFormat = new SimpleDateFormat(formatStr);
           return bartDateFormat.format(date);
    }
    /**
     * <p>根据指定格式获得当前时间串</p>
     * @param dateString
     */
    public static String  getFormatCurrentDate(String formatStr)
    {
           Date date = new Date();
           SimpleDateFormat bartDateFormat = new SimpleDateFormat(formatStr);
           return bartDateFormat.format(date);
    }
    /** 
     * <p>将短时间格式字符串转换为时间formatStr </p> 
     *  
     * @param strDate 
     * @return 
     */ 
     public static Date strToDate(String strDate,String formatStr)
     {  
         SimpleDateFormat formatter = new SimpleDateFormat(formatStr);   
         Date strtodate = null;
        try
        {
            strtodate = formatter.parse(strDate);
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }  
         return strtodate;  
     }
    public static void main(String[] args)
    {
//        String[]st=getWeekOfDayEnlish("MM月dd日--EEEE");
//        getWeekOfDayChina("MM月dd日");
//        for(int i=0;i<st.length;i++)
//        {
//
//            System.out.println(st[i]);
//        }
        String[]st=getAfterNDay(new Date(),6,"EEEE");
        for(int i=0;i<st.length;i++)
        {
            System.out.println(st[i]);
        }
        //getAfterNDay(6,"yyyy,MM月dd日");
//        System.out.println(getWeeks("2009-03-12"));
//        GregorianCalendar   ca   =   new   GregorianCalendar();  
//        System.out.println(ca.get(GregorianCalendar.AM_PM));
//
//        SimpleDateFormat defaultSDF=new SimpleDateFormat("yyyyMM");
       
        //System.out.println(strToDate("2009-3-13","yyyy-MM-dd"));

    }
}

java中关于时间的处理

程序就是输入——>处理——>输出。对数据的处理是程序员需要着重注意的地方,快速、高效的对数据进行处理时我们的追求。其中,时间日期的处理又尤为重要和平凡,此次,我将把Java中的时间日期处理方式进行简单...
  • w1014074794
  • w1014074794
  • 2016年08月22日 18:02
  • 1106

java处理日期工具类(一)

package util; import java.math.BigDecimal; import java.text.DateFormat; import java.text.ParseExcep...
  • qq_17555933
  • qq_17555933
  • 2016年06月23日 17:28
  • 3674

Java自定义日期处理工具类

1、主要使用Calendar类、SimpleDateFormat类 2、同时注意add方法是相对当前月而言的,而set方法是对应整体而言,整体是月就是从月的第一天开始,是年就从年的第一天开始 3、...
  • baishatangk
  • baishatangk
  • 2017年11月09日 09:20
  • 155

时间处理工具类(DateUtil)

package com.lvmama.comm.utils; import java.text.DateFormat; import java.text.ParseException; im...
  • jakeswang
  • jakeswang
  • 2016年06月23日 15:38
  • 1797

Java关于日期时间的工具类

import java.sql.Timestamp; import java.text.ParseException; import java.text.ParsePosition; import j...
  • StaticFinal520
  • StaticFinal520
  • 2017年01月09日 08:53
  • 3004

时间处理工具类,和使用字符串或者日期处理需要注意的问题

数据库是DateTime类型 项目开发中:对时间的使用出现两种方式: 1.使用字符串来表示时间 2.使用Date来表示时间 1.先说说第一种方式会出现的问题:数据从后台传递到后台显示的时候不会有问...
  • shenbushen
  • shenbushen
  • 2016年11月04日 17:57
  • 693

Java中的时间日期处理

日常开发中对时间或者日期处理肯定层出不穷,简单总结一下Java中时间相关的使用方法。 相关类Date: Date表示特定的瞬间,精确到毫秒,Date中的相应方法已废弃,从JDK 1.1开始,应该使...
  • MAGIC_JSS
  • MAGIC_JSS
  • 2016年05月13日 00:18
  • 2608

Java8 新日期时间类(2)

java.time 时区日期时间类 java.time处理本地日期时间的主要类为ZonedDateTime,一般用于使用地区的时区需要被考虑的情况下,用于取代 LocalDate; Zo...
  • Al_assad
  • Al_assad
  • 2017年02月28日 19:48
  • 739

Java 日期类及其处理

转载:http://blog.csdn.net/jacobvv/article/details/42023419 Date类 1. 概述 Date类是表示特定时间点的对象,精确到毫秒。 A...
  • kl28978113
  • kl28978113
  • 2016年11月01日 09:52
  • 640

JAVA 日期时间的工具类

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor...
  • honghongxuexi
  • honghongxuexi
  • 2016年11月22日 23:04
  • 1349
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:时间日期处理类
举报原因:
原因补充:

(最多只允许输入30个字)