中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中怎么實現一個時間轉換工具類

發布時間:2021-08-07 16:05:38 來源:億速云 閱讀:107 作者:Leah 欄目:編程語言

Java中怎么實現一個時間轉換工具類,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

package com.cn.itcdns.util;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateFormatUtils;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DateUtil {

   /**
    * yyyy年MM月dd日
    */
   public static final String FormatDayToChinaTime24H = "yyyy年MM月dd日";
   /**
    * yyyy-MM-dd HH:mm:ss
    */
   public static String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
   /**
    * yyyy-MM-dd
    */
   public static String DATE_FORMAT = "yyyy-MM-dd";
   /**
    * yyyyMMdd
    */
   public static String DATE_FORMAT1 = "yyyyMMdd";
   /**
    * HH:mm:ss
    */
   public static String TIME_FORMAT = "HH:mm:ss";
   /**
    * yyyyMMddHHmmss
    */
   public static String DATETIME_FORMAT2 = "yyyyMMddHHmmss";

   /**
    * 返回年份
    *
    * @param date
    *            日期
    * @return 返回年份
    */
   public static int getYear(Date date) {
       Calendar c = Calendar.getInstance();
       c.setTime(date);
       return c.get(Calendar.YEAR);
   }

   /**
    * 返回月份
    *
    * @param date
    *            日期
    * @return 返回月份
    */
   public static int getMonth(Date date) {
       Calendar c = Calendar.getInstance();
       c.setTime(date);
       return c.get(Calendar.MONTH) + 1;
   }

   /**
    * 返回日份
    *
    * @param date
    *            日期
    * @return 返回日份
    */
   public static int getDay(Date date) {
       Calendar c = Calendar.getInstance();
       c.setTime(date);
       return c.get(Calendar.DAY_OF_MONTH);
   }

   /**
    * Parse date like "yyyy-MM-dd".
    */
   public static Date parseDate(String d) {
       try {
           return new SimpleDateFormat(DATE_FORMAT).parse(d);
       } catch (Exception e) {
           e.printStackTrace();
       }
       return null;
   }
   /**
    * Parse date like "yyyyMMdd".
    */
   public static Date parseDate1(String d) {
       try {
           return new SimpleDateFormat(DATE_FORMAT1).parse(d);
       } catch (Exception e) {
           e.printStackTrace();
       }
       return null;
   }
   /**
    * Parse date like "yyyy-MM-dd HH:mm:ss".
    */
   public static Date parseDateTime(String d) {
       try {
           return new SimpleDateFormat(DATETIME_FORMAT).parse(d);
       } catch (Exception e) {
       }
       return null;
   }
   /**
    * Parse date like "yyyyMMddHHmmss".
    */
   public static Date parseDateTime2(String d) {
       try {
           return new SimpleDateFormat(DATETIME_FORMAT2).parse(d);
       } catch (Exception e) {
       }
       return null;
   }

   /**
    * Parse date like "HH:mm:ss".
    */
   public static Date parseTime(String d) {
       try {
           return new SimpleDateFormat(TIME_FORMAT).parse(d);
       } catch (Exception e) {
       }
       return null;
   }

   /**
    * 取得指定月份的最后一天
    *
    * @param strdate
    *            String
    * @return String
    */
   public String getMonthEnd(String strdate) {
       Date date = parseDate(getMonthBegin(strdate));
       Calendar calendar = Calendar.getInstance();
       calendar.setTime(date);
       calendar.add(Calendar.MONTH, 1);
       calendar.add(Calendar.DAY_OF_YEAR, -1);
       return formatDate(calendar.getTime());
   }

   /**
    * 取得指定月份的第一天
    *
    * @param strdate
    *            String
    * @return String
    */
   public String getMonthBegin(String strdate) {
       Date date = parseDate(strdate);
       return formatDateByFormat(date, "yyyy-MM") + "-01";
   }

   /**
    * 以指定的格式來格式化日期
    *
    * @param date
    *            Date
    * @param format
    *            String
    * @return String
    */
   public static String formatDateByFormat(Date date, String format) {
       String result = "";
       if (date != null) {
           try {
               SimpleDateFormat sdf = new SimpleDateFormat(format);
               result = sdf.format(date);
           } catch (Exception ex) {
               ex.printStackTrace();
           }
       }
       return result;
   }

   /**
    * 常用的格式化日期
    * 默認格式yyyy-MM-dd
    * @param date
    *            Date
    * @return String
    */
   public static String formatDate(Date date) {
       return formatDateByFormat(date, "yyyy-MM-dd");
   }

   /**
    * @根據當前日期計算n天后的日期
    * @return String
    */
   public static Date afterNDay(Date date, int n) {
       Calendar c = Calendar.getInstance();
       c.setTime(date);
       c.add(Calendar.DATE, n);
       Date destDay = c.getTime();
       return destDay;
   }

   /**
    * 兩個日期間的天數
    */
   public static int getIntervalDays(Date startday, Date endday) {
       if (startday.after(endday)) {
           Date cal = startday;
           startday = endday;
           endday = cal;
       }
       long sl = startday.getTime();
       long el = endday.getTime();
       long ei = el - sl;
       return (int) (ei / (1000 * 60 * 60 * 24));
   }

   public static boolean  verifyDate(String birthday){
       String [] array = birthday.split("-");
       if(null == array || array.length != 3 || array[0].length() !=4 ||                        array[1].length() != 2 || array[2].length() != 2)
           return false;
       int curyear = DateUtil.getYear(new Date());
       try {
           int studyear = Integer.parseInt(array[0]);
           if(studyear <= 1900 || studyear > curyear)
               return false;
           String curDateStr = formatDateByFormat(new Date(), DATE_FORMAT);
           if(birthday.compareTo(curDateStr) >= 0)
               return false;
           return checkDate(birthday);
       } catch (NumberFormatException e) {
           return false;
       }
   }

   private static boolean checkDate(String date) {
       // System.out.println(date);
       // 判斷年月日的正則表達式,接受輸入格式為2010-12-24,可接受平年閏年的日期
       String regex = "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}            |[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|            11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})            (0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))             -02-29)";
       Pattern pattern = Pattern.compile(regex);
       Matcher matcherObj = pattern.matcher(date);
       return matcherObj.matches();
   }

   public static Date addMonths(Date date, int amount) {
       final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
       sdf.setLenient(false);
       String ymd=sdf.format(date);
       final Calendar calendar = new GregorianCalendar();
       calendar.setLenient(false);
       calendar.set(Integer.parseInt(ymd.substring(0, 4)),
               Integer.parseInt(ymd.substring(4, 6)),
               Integer.parseInt(ymd.substring(6)));
       calendar.add(Calendar.MONTH, amount);
       String newDate1=sdf.format(calendar.getTime())  ;
       Date newDate2=parseDate1(newDate1);
       return newDate2;
   }

   public static String stringToday() { return stringToday(null); }

   public static String stringToday(String separator) {
       String separatorValue = StringUtils.trimToEmpty(separator);
       Calendar calendar = Calendar.getInstance();

       return DateFormatUtils.format(calendar, "yyyy-MM-dd".replace("-", separatorValue));
   }

}

關于Java中怎么實現一個時間轉換工具類問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南平市| 新巴尔虎右旗| 历史| 阿巴嘎旗| 常宁市| 武胜县| 宜春市| 明溪县| 徐汇区| 罗平县| 龙泉市| 澳门| 西城区| 莒南县| 镇江市| 青铜峡市| 普宁市| 瓦房店市| 涟源市| 平罗县| 望奎县| 遂平县| 泽库县| 林西县| 于都县| 平武县| 通渭县| 威远县| 新田县| 汉寿县| 通化市| 左云县| 朝阳县| 台中市| 荥经县| 嘉兴市| 张家口市| 天水市| 江孜县| 锡林浩特市| 宁晋县|