2025-05-25

package cn.hnedu.util;



import java.io.*;
import java.text.*;
import java.util.*;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


public class DateUtils {
  public DateUtils() {
  }


  public final static Calendar myc = Calendar.getInstance();


  public static final int SECOND = 1000;
  public static final int MINUTE = SECOND * 60;
  public static final int HOUR = MINUTE * 60;
  public static final int DAY = HOUR * 24;
  public static final int WEEK = DAY * 7;
  public static final int YEAR = DAY * 365; // or 366 ???


  public static final long GMT_VIETNAM_TIME_OFFSET = HOUR * 8;


  private static long SERVER_TIME_OFFSET = HOUR * 0;


  private static DateFormat ddMMyyyyFormat = new SimpleDateFormat(“dd/MM/yyyy”);
  private static DateFormat yyyymmddhhmmssFormat = new SimpleDateFormat(
      “yyyy年MM月dd日 kk:mm:ss”);
  private static DateFormat mmddhhmmFormat = new SimpleDateFormat(
      “MM月dd日 kk:mm”);
  private static DateFormat yyyymmddhhmmFormat = new SimpleDateFormat(
      “yyyy年MM月dd日 kk:mm”);
  private static DateFormat dateFormat = SimpleDateFormat.getDateInstance(
      SimpleDateFormat.DEFAULT);
  private static DateFormat datetimeFormat = SimpleDateFormat.
      getDateTimeInstance(SimpleDateFormat.DEFAULT, SimpleDateFormat.DEFAULT);


  /**
   * @return 返回當前時間,返回格式:2003-4-25 14:50:7
   */
  public static String getTime() {
    return getTime(“yyyy-MM-dd HH:mm:ss”);
  }


  public static Date getDate(String parrten) {
    if (!StringUtils.hasText(parrten)) {
      parrten = “yyyyMMddHH”;
    }
    String starttime = DateUtils.getTime(parrten);
    return DateUtils.getStrToDate(starttime, parrten);
  }
 
  public static Date getDate(){
   return getDate(“yyyy-MM-dd HH:mm:ss”);
  }


  /**
   * 獲得當前時間
   * @param parrten 輸出的時間格式
   * @return 返回時間
   */
  public static String getTime(String parrten) {
    String timestr;
    if (parrten == null || parrten.equals(“”)) {
      parrten = “yyyyMMddHHmmss”;
    }
    java.text.SimpleDateFormat sdf = new SimpleDateFormat(parrten);
    java.util.Date cday = new Date();
    timestr = sdf.format(cday);
    return timestr;
  }


  /**
   * 時間格式轉換
   * @param cday
   * @param parrten
   * @return
   */
  public static String getTime(Date cday, String parrten) {
    String timestr;
    if (parrten == null || parrten.equals(“”)) {
      parrten = “yyyyMMddHHmmss”;
    }
    java.text.SimpleDateFormat sdf = new SimpleDateFormat(parrten);
    timestr = sdf.format(cday);
    return timestr;
  }


  /**
   * 得到昨天的時間
   * @return
   */
  public static String getYestday() {
    String timestr;
    java.util.Calendar cc = myc;
    cc.roll(cc.DAY_OF_YEAR, -1);
    java.text.SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
    timestr = sdf.format(cc.getTime());
    return timestr;
  }


  //將一個時間字符串轉換為date型
  public static Date getStrToDate(String time, String parrten) {
    SimpleDateFormat formatter = new SimpleDateFormat(parrten);
    ParsePosition pos = new ParsePosition(0);
    Date dt1 = formatter.parse(time, pos);
    return dt1;
  }


  /**
   * 將時間轉換為xxxx年xx月xx日格式
   * @param t1 原時間
   * @param parrten 原時間格式
   * @return
   */
  public static String getTime(String t1, String parrten) {
    SimpleDateFormat formatter = new SimpleDateFormat(parrten);
    SimpleDateFormat formatter2 = new SimpleDateFormat(“yyyy年MM月dd日”);
    ParsePosition pos = new ParsePosition(0);
    Date dt1 = formatter.parse(t1, pos);
    return formatter2.format(dt1);
  }


  /**
   * 將時間轉換為parrten2格式
   * @param t1
   * @param parrten
   * @param parrten2
   * @return
   */
  public static String getTime(String t1, String parrten, String parrten2) {
    SimpleDateFormat formatter = new SimpleDateFormat(parrten);
    SimpleDateFormat formatter2 = new SimpleDateFormat(parrten2);
    ParsePosition pos = new ParsePosition(0);
    Date dt1 = formatter.parse(t1, pos);
    return formatter2.format(dt1);
  }


  /**
   * 比較兩個字符串時間的大小
   * @param t1 時間1
   * @param t2 時間2
   * @param parrten 時間格式 :yyyy-MM-dd
   * @return 返回long =0相等,>0 t1>t2,<0 t1<t2
   */
  public static long compareStringTime(String t1, String t2, String parrten) {
    SimpleDateFormat formatter = new SimpleDateFormat(parrten);
    ParsePosition pos = new ParsePosition(0);
    ParsePosition pos1 = new ParsePosition(0);
    Date dt1 = formatter.parse(t1, pos);
    Date dt2 = formatter.parse(t2, pos1);
    long l = dt1.getTime() – dt2.getTime();
    return l;
  }


  //相差的天數
  public static int compareTime(String time1, String time2) {
    long l = compareStringTime(time1, time2, “yyyy-MM-dd”);
    long days = l / 1000 / 60 / 60 / 24;
    return (int) days;
  }


  public static synchronized String getDateDDMMYYYY(Date date) {
    return ddMMyyyyFormat.format(date);
  }


  public static synchronized String getDateindex(Date date) {
    return yyyymmddhhmmssFormat.format(date);
  }


  public static synchronized String getDateSearch(Date date) {
    return mmddhhmmFormat.format(date);
  }


  public static synchronized String getDateNoSencond(Date date) {
    return yyyymmddhhmmFormat.format(date);
  }


  public static synchronized String formatDate(Date date) {
    return dateFormat.format(date);
  }


  public static synchronized String formatDateTime(Date date) {
    return datetimeFormat.format(date);
  }


  public static Timestamp getCurrentGMTTimestamp() {
    return new Timestamp(System.currentTimeMillis() – SERVER_TIME_OFFSET);
  }


  public static void updateCurrentGMTTimestamp(Timestamp timeToUpdate) {
&nbsp

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *