zoukankan      html  css  js  c++  java
  • 时间通用方法

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.apache.commons.lang3.time.DateFormatUtils;
    
    /**
    * 日期工具类, 继承org.apache.commons.lang.time.DateUtils类
    */
    public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
    
      private static String[] parsePatterns = {
        "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", 
        "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
        "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM",
        "yyyyMMddHHmmss", "yyyyMMdd"};
      private static SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      private static SimpleDateFormat fmt_yyyyMMddHHmm = new SimpleDateFormat("yyyy-MM-dd HH:mm");
      /**
      * 得到当前日期字符串 格式(yyyy-MM-dd)
      */
      public static String getDate() {
        return getDate("yyyy-MM-dd");
      }
    
      /**
      * 得到当前日期字符串 格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"
      */
      public static String getDate(String pattern) {
        return DateFormatUtils.format(new Date(), pattern);
      }
    
      /**
      * 得到日期字符串 默认格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"
      */
      public static String formatDate(Date date, Object... pattern) {
        String formatDate = null;
        if (pattern != null && pattern.length > 0) {
          formatDate = DateFormatUtils.format(date, pattern[0].toString());
        }else {
          formatDate = DateFormatUtils.format(date, "yyyy-MM-dd");
        }
        return formatDate;
      }
    
      /**
      * 得到日期时间字符串,转换格式(yyyy-MM-dd HH:mm:ss)
      */
      public static String formatDateTime(Date date) {
        return formatDate(date, "yyyy-MM-dd HH:mm:ss");
      }
    
      public static Date parseStrTime(String time){
        try {
          return fmt.parse(time);
        } catch (ParseException e) {
          e.printStackTrace();
          return null;
        }
      }
    
      public static Date parseStrTimeyyyyMMddHHmm(String time){
        try {
          return fmt_yyyyMMddHHmm.parse(time);
        } catch (ParseException e) {
          e.printStackTrace();
          return null;
        }
      }    
    
    
      /**
      * 得到当前时间字符串 格式(HH:mm:ss)
      */
      public static String getTime() {
        return formatDate(new Date(), "HH:mm:ss");
      }
    
      /**
      * 得到当前日期和时间字符串 格式(yyyy-MM-dd HH:mm:ss)
      */
      public static String getDateTime() {
        return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
      }
    
      /**
      * 得到当前年份字符串 格式(yyyy)
      */
      public static String getYear() {
        return formatDate(new Date(), "yyyy");
      }
    
      /**
      * 得到当前月份字符串 格式(MM)
      */
      public static String getMonth() {
        return formatDate(new Date(), "MM");
      }
    
      /**
      * 得到当天字符串 格式(dd)
      */
      public static String getDay() {
        return formatDate(new Date(), "dd");
      }
    
      /**
      * 得到当前星期字符串 格式(E)星期几
      */
      public static String getWeek() {
        return formatDate(new Date(), "E");
      }
    
      /**
      * 日期型字符串转化为日期 格式
      * { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", 
      * "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm",
      * "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm",
      * "yyyyMMddHHmmss", "yyyyMMdd" }
      */
      public static Date parseDate(Object str) {
        if (str == null){
          return null;
        }
        try {
          return parseDate(str.toString(), parsePatterns);
        } catch (ParseException e) {
          return null;
        }
      }
    
      /**
      * 获取过去的天数
      * @param date
      * @return
      */
      public static long pastDays(Date date) {
        long t = new Date().getTime()-date.getTime();
        return t/(24*60*60*1000);
      }
    
      /**
      * 获取过去的小时
      * @param date
      * @return
      */
      public static long pastHour(Date date) {
        long t = new Date().getTime()-date.getTime();
        return t/(60*60*1000);
      }
    
      /**
      * 获取过去的分钟
      * @param date
      * @return
      */
      public static long pastMinutes(Date date) {
        long t = new Date().getTime()-date.getTime();
        return t/(60*1000);
      }
    
      /**
      * 转换为时间(天,时:分:秒.毫秒)
      * @param timeMillis
      * @return
      */
      public static String formatDateTime(long timeMillis){
        long day = timeMillis/(24*60*60*1000);
        long hour = (timeMillis/(60*60*1000)-day*24);
        long min = ((timeMillis/(60*1000))-day*24*60-hour*60);
        long s = (timeMillis/1000-day*24*60*60-hour*60*60-min*60);
        long sss = (timeMillis-day*24*60*60*1000-hour*60*60*1000-min*60*1000-s*1000);
        return (day>0?day+",":"")+hour+":"+min+":"+s+"."+sss;
      }
    
      /**
      * 获取两个日期之间的天数
      * 
      * @param before
      * @param after
      * @return
      */
      public static double getDistanceOfTwoDate(Date before, Date after) {
        long beforeTime = before.getTime();
        long afterTime = after.getTime();
        return (afterTime - beforeTime) / (1000 * 60 * 60 * 24);
      }
    
      public static String longToString(long currentTime){
        Date dateOld = new Date(currentTime);
        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
        return sdf.format(dateOld);
      }
    
      /**
      * @param args
      * @throws ParseException
      */
      public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(Long.parseLong("1463361862000")));
      }
    
      /**
      * 获取两个日期之间的小时
      * 
      * @param before
      * @param after
      * @return
      */
      public static double getDistanceOfTwoHour(Date before, Date after) {
        long beforeTime = before.getTime();
        long afterTime = after.getTime();
        return (afterTime - beforeTime) / (1000 * 60 * 60);
      }
    }
    版权声明:如需转载,请注明!PS:如是转载随便,请忽略
  • 相关阅读:
    洛谷
    洛谷
    洛谷
    模板
    洛谷
    洛谷
    Codeforces Round #561 (Div. 2) E. The LCMs Must be Large(数学)
    Codeforces Round #561 (Div. 2)
    Mail.Ru Cup 2018 Round 2 C. Lucky Days(拓展欧几里得)
    The 10th Shandong Provincial Collegiate Programming Contest H.Tokens on the Segments(贪心+优先级队列 or 贪心+暴力)
  • 原文地址:https://www.cnblogs.com/zwdx/p/7196288.html
Copyright © 2011-2022 走看看