关于获取当前时间的总结

来源:百度文库 编辑:神马文学网 时间:2024/04/29 02:27:39

java.util.*;

import java.text.*;

import java.util.Calendar;

public class VeDate {

/**

       * 获取现在时间

       *

       * @return 返回时间类型 yyyy-MM-dd HH:mm:ss

       */

public static Date getNowDate() {

       Date currentTime = new Date();

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

       String dateString = formatter.format(currentTime);

       ParsePosition pos = new ParsePosition(8);

       Date currentTime_2 = formatter.parse(dateString, pos);

       return currentTime_2;

}

/**

       * 获取现在时间

       *

       * @return返回短时间格式 yyyy-MM-dd

       */

public static Date getNowDateShort() {

       Date currentTime = new Date();

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

       String dateString = formatter.format(currentTime);

       ParsePosition pos = new ParsePosition(8);

       Date currentTime_2 = formatter.parse(dateString, pos);

       return currentTime_2;

}

/**

       * 获取现在时间

       *

       * @return返回字符串格式 yyyy-MM-dd HH:mm:ss

       */

public static String getStringDate() {

       Date currentTime = new Date();

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

       String dateString = formatter.format(currentTime);

       return dateString;

}

/**

       * 获取现在时间

       *

       * @return 返回短时间字符串格式yyyy-MM-dd

       */

public static String getStringDateShort() {

       Date currentTime = new Date();

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

       String dateString = formatter.format(currentTime);

       return dateString;

}

/**

       * 获取时间 小时:分;秒 HH:mm:ss

       *

       * @return

       */

public static String getTimeShort() {

       SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");

       Date currentTime = new Date();

       String dateString = formatter.format(currentTime);

       return dateString;

}

/**

       * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss

       *

       * @param strDate

       * @return

       */

public static Date strToDateLong(String strDate) {

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

       ParsePosition pos = new ParsePosition(0);

       Date strtodate = formatter.parse(strDate, pos);

       return strtodate;

}

/**

       * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss

       *

       * @param dateDate

       * @return

       */

public static String dateToStrLong(java.util.Date dateDate) {

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

       String dateString = formatter.format(dateDate);

       return dateString;

}

/**

       * 将短时间格式时间转换为字符串 yyyy-MM-dd

       *

       * @param dateDate

       * @param k

       * @return

       */

public static String dateToStr(java.util.Date dateDate) {

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

       String dateString = formatter.format(dateDate);

       return dateString;

}

/**

       * 将短时间格式字符串转换为时间 yyyy-MM-dd

       *

       * @param strDate

       * @return

       */

public static Date strToDate(String strDate) {

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

       ParsePosition pos = new ParsePosition(0);

       Date strtodate = formatter.parse(strDate, pos);

       return strtodate;

}

/**

       * 得到现在时间

       *

       * @return

       */

public static Date getNow() {

       Date currentTime = new Date();

       return currentTime;

}

/**

       * 提取一个月中的最后一天

       *

       * @param day

       * @return

       */

public static Date getLastDate(long day) {

       Date date = new Date();

       long date_3_hm = date.getTime() - 3600000 * 34 * day;

       Date date_3_hm_date = new Date(date_3_hm);

       return date_3_hm_date;

}

/**

       * 得到现在时间

       *

       * @return 字符串 yyyyMMdd HHmmss

       */

public static String getStringToday() {

       Date currentTime = new Date();

       SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");

       String dateString = formatter.format(currentTime);

       return dateString;

}

// 计算当月最后一天,返回字符串

public String getDefaultDay(){  

      String str = "";

      SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");    

      Calendar lastDate = Calendar.getInstance();

      lastDate.set(Calendar.DATE,1);//设为当前月的1号

      lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1号

      lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天

   

      str=sdf.format(lastDate.getTime());

      return str;  

}

/**

       * 得到现在小时

       */

public static String getHour() {

       Date currentTime = new Date();

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

       String dateString = formatter.format(currentTime);

       String hour;

       hour = dateString.substring(11, 13);

       return hour;

}

/**

       * 得到现在分钟

       *

       * @return

       */

public static String getTime() {

       Date currentTime = new Date();

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

       String dateString = formatter.format(currentTime);

       String min;

       min = dateString.substring(14, 16);

       return min;

}

/**

       * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。

       *

       * @param sformat

       *                 yyyyMMddhhmmss

       * @return

       */

public static String getUserDate(String sformat) {

       Date currentTime = new Date();

       SimpleDateFormat formatter = new SimpleDateFormat(sformat);

       String dateString = formatter.format(currentTime);

       return dateString;

}

/**

       * 二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式,返回字符型的分钟

       */

public static String getTwoHour(String st1, String st2) {

       String[] kk = null;

       String[] jj = null;

       kk = st1.split(":");

       jj = st2.split(":");

       if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0]))

        return "0";

       else {

        double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60;

        double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60;

        if ((y - u) > 0)

         return y - u + "";

        else

         return "0";

       }

}

/**

       * 得到二个日期间的间隔天数

       */

public static String getTwoDay(String sj1, String sj2) {

       SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");

       long day = 0;

       try {

        java.util.Date date = myFormatter.parse(sj1);

        java.util.Date mydate = myFormatter.parse(sj2);

        day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);

       } catch (Exception e) {

        return "";

       }

       return day + "";

}

/**

       * 时间前推或后推分钟,其中JJ表示分钟.

       */

public static String getPreTime(String sj1, String jj) {

       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

       String mydate1 = "";

       try {

        Date date1 = format.parse(sj1);

        long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;

        date1.setTime(Time * 1000);

        mydate1 = format.format(date1);

       } catch (Exception e) {

       }

       return mydate1;

}

/**

       * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数

       */

public static String getNextDay(String nowdate, String delay) {

       try{

       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

       String mdate = "";

       Date d = strToDate(nowdate);

       long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;

       d.setTime(myTime * 1000);

       mdate = format.format(d);

       return mdate;

       }catch(Exception e){

        return "";

       }

}

/**

       * 判断是否润年

       *

       * @param ddate

       * @return

       */

public static boolean isLeapYear(String ddate) {

       /**

        * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年

        * 3.能被4整除同时能被100整除则不是闰年

        */

       Date d = strToDate(ddate);

       GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();

       gc.setTime(d);

       int year = gc.get(Calendar.YEAR);

       if ((year % 400) == 0)

        return true;

       else if ((year % 4) == 0) {

        if ((year % 100) == 0)

         return false;

        else

         return true;

       } else

        return false;

}

/**

       * 返回美国时间格式 26 Apr 2006

       *

       * @param str

       * @return

       */

public static String getEDate(String str) {

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

       ParsePosition pos = new ParsePosition(0);

       Date strtodate = formatter.parse(str, pos);

       String j = strtodate.toString();

       String[] k = j.split(" ");

       return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);

}

/**

       * 获取一个月的最后一天

       *

       * @param dat

       * @return

       */

public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd

       String str = dat.substring(0, 8);

       String month = dat.substring(5, 7);

       int mon = Integer.parseInt(month);

       if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {

        str += "31";

       } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {

        str += "30";

       } else {

        if (isLeapYear(dat)) {

         str += "29";

        } else {

         str += "28";

        }

       }

       return str;

}

/**

       * 判断二个时间是否在同一个周

       *

       * @param date1

       * @param date2

       * @return

       */

public static boolean isSameWeekDates(Date date1, Date date2) {

       Calendar cal1 = Calendar.getInstance();

       Calendar cal2 = Calendar.getInstance();

       cal1.setTime(date1);

       cal2.setTime(date2);

       int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);

       if (0 == subYear) {

        if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))

         return true;

       } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {

        // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周

        if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))

         return true;

       } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {

        if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))

         return true;

       }

       return false;

}

/**

       * 产生周序列,即得到当前时间所在的年度是第几周

       *

       * @return

       */

public static String getSeqWeek() {

       Calendar c = Calendar.getInstance(Locale.CHINA);

       String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));

       if (week.length() == 1)

        week = "0" + week;

       String year = Integer.toString(c.get(Calendar.YEAR));

       return year + week;

}