如何在Java中将字符串转换为日期,无论系统格式是什么

这个问题在这里已经有了答案:

  • 在Java 3答案中解析任何日期

  • 您正试图将格式为dd/MM/yyyy EEEE, MMMM dd, yyyy格式的字符串转换成...

    首先使用正确格式的String尝试转换,使用任何你想要将其转换回来的格式...

    SimpleDateFormat from = new SimpleDateFormat("EEEE, MMMM dd, yyyy");
    SimpleDateFormat to = new SimpleDateFormat("dd/MM/yyyy");
    
    String value = to.format(from.parse(dateString));
    

    现在你可以使用类似DateUtils.parseDate(String, String[])东西DateUtils.parseDate(String, String[])它允许提供许多不同的格式,但仍然限于你可能知道的内容。

    更好的解决方案是将Date值直接存储在数据库中。


  • 您将错误的参数传递给SimpleDateFormater
  • 使用SimpleDateFormat format = new SimpleDateFormat(“EEEE,MMMM dd,yyyy”)而不是SimpleDateFormat to = new SimpleDateFormat(“dd / MM / yyyy”);
  • 它解决了您的无法解析的日期问题。

  • 尝试使用这样的东西:

    public static String dateToString(String date){
        if(date.equals("")) return "";
        if(date == null || date.length() == 0){
            return "";
        }
        SimpleDateFormat formatIn = new SimpleDateFormat("dd/MM/yyyy");
        SimpleDateFormat formatOut = new SimpleDateFormat("yyyy-dd-MM");
    
        try {
            Date l_date =  formatIn.parse(date);
            String result = formatOut.format(l_date);
            return result;
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return "";
        }
    }
    

    但如果你想把一些数据放到数据库中,你也可以使用String java.sql.Date

    像这样的东西:

    SimpleDateFormat format = new SimpleDateFormat();
    
    Connection conn = ...
    PreparedStatement ps = conn.prepareStatement("...");
    
    long lDate = format.parse(sDate).getTime();
    java.sql.Date dDate = new java.sql.Date(lDate);
    ps.setDate(1, dDate);
    
    链接地址: http://www.djcxy.com/p/84545.html

    上一篇: How to convert String to Date in java whatever system format is

    下一篇: RxJava, execute code in the observer thread before chaining two observables