zoukankan      html  css  js  c++  java
  • java 统一处理大部分时间字符串为Date格式

    public static void main(String[] args) {
            String a = "2016-11-30 17:16:00";
            String b = "2015-07-13 11:11:22.02";
            String c = "1394438072";
            String d = "Jul 26, 2017 2:27:13 PM";
            String e = "2019-03-31";
            String g = "2019-04-01 03:13";
            String h = "1584516482676";
            String i = "2014-06-27T08:11:07.168Z";
            String j = "Tue Jan 14 16:11:26 +0800 2020";
    
            DateFormat formatTo = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = formatDate(a);
            Date date2 = formatDate(b);
            Date date3 = formatDate(c);
            Date date4 = formatDate(d);
            Date date5 = formatDate(e);
            Date date6 = formatDate(g);
            Date date7 = formatDate(h);
            Date date8 = formatDate(i);
            System.out.println(date!=null?formatTo.format(date):null);
            System.out.println(date2!=null?formatTo.format(date2):null);
            System.out.println(date3!=null?formatTo.format(date3):null);
            System.out.println(date4!=null?formatTo.format(date4):null);
            System.out.println(date5!=null?formatTo.format(date5):null);
            System.out.println(date6!=null?formatTo.format(date6):null);
            System.out.println(date7!=null?formatTo.format(date7):null);
            System.out.println(date8!=null?formatTo.format(date8):null);
            System.out.println();
        }
    
        private static Date formatDate(String str) {
            SimpleDateFormat resultSdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            SimpleDateFormat resultSdfDate = new SimpleDateFormat("yyyy-MM-dd");
            if (str == null) {
                return null;
            }
            if (str.contains("CST")) {
                try {
                    Date date = resultSdf.parse(str);
                    return date;
                } catch (ParseException e) {
                    log.error("时间转换失败:{}", e.getMessage());
                }
            } else if (str.contains("Z")) {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'.'sss'Z'");
                try {
                    Date date = sdf.parse(str);
                    return date;
                } catch (ParseException e) {
                    log.error("时间转换失败:{}", e.getMessage());
                }
    
            } else if (str.contains("-") && str.contains(":") && str.length() == 16) {
                try {
                    Date newDate = resultSdf.parse(str + ":00");
                    return newDate;
                } catch (ParseException e) {
                    log.error("时间转换失败:{}", e.getMessage());
                }
            } else if (str.contains("-") && str.contains(":")) {
                try {
                    Date newDate = resultSdf.parse(str);
                    return newDate;
                } catch (ParseException e) {
                    log.error("时间转换失败:{}", e.getMessage());
                }
            } else if (str.contains("-") && !str.contains(":")) {
                try {
                    Date newDate = resultSdfDate.parse(str);
                    return newDate;
                } catch (ParseException e) {
                    log.error("时间转换失败:{}", e.getMessage());
                }
            } else if (str.contains(",") && (str.contains("AM") || str.contains("PM"))) {
                try {
                    DateFormat formatFrom = new SimpleDateFormat("MMM dd,yyyy KK:mm:ss aa", Locale.ENGLISH);
                    Date date = formatFrom.parse(str);
                    return date;
                } catch (ParseException e) {
                    log.error("时间转换失败:{}", e.getMessage());
                }
            } else {
                if (str.length() != 13) {
                    int decrease = 13 - str.length();
                    for (int i = 0; i < decrease; i++) {
                        str += "0";
                    }
                }
                try {
                    Date date = new Date(Long.parseLong(str));
                    return date;
                } catch (NumberFormatException e) {
                    log.error("时间转换失败:{}", e.getMessage());
                }
            }
            try {
                Date date = new Date(str);
                return date;
            } catch (NumberFormatException e) {
                log.info("时间转换失败:{}", e.getMessage());
            }
            return null;
        }
    

      

    借鉴于该博客:https://blog.csdn.net/zzq900503/article/details/38925225

    可以处理以下格式:

        String a = "2016-11-30 17:16:00";
        String b = "2015-07-13 11:11:22.02";
        String c = "1394438072";
        String d = "Jul 26, 2017 2:27:13 PM";
        String e = "2019-03-31";
        String g = "2019-04-01 03:13";
        String h = "1584516482676";
        String i = "2014-06-27T08:11:07.168Z";
        String j = "Tue Jan 14 16:11:26 +0800 2020";

     

  • 相关阅读:
    攻破JAVA NIO技术壁垒
    java8 ArrayList源码阅读
    Objective-C基础10 :代码块
    Objective-C基础9 :协议(@protocol)
    Objective-C基础8 : 类扩展(class extension)
    Objective-C基础7 :命名约定(naming conventions)
    Objective-C基础6 : 类别category
    Objective-C基础5 : 属性@property
    Objective-C基础4:对象初始化
    Foundation Kit常用类介绍
  • 原文地址:https://www.cnblogs.com/zhizhu1120418975/p/12518228.html
Copyright © 2011-2022 走看看