【问题标题】:I want to parse String into java date object [duplicate]我想将字符串解析为java日期对象[重复]
【发布时间】:2013-11-28 06:04:53
【问题描述】:

您好,我有这种格式的日期 2013-10-31T19:00:00Z 现在我想将此日期显示为 yyyy/mm/dd 这种格式。我使用了此代码,但它给了我例外,请帮助我

String startDateString = "2013-10-31T19:00:00Z";

        DateFormat df = new SimpleDateFormat("yyyy/mm/dd"); 
        Date startDate;
        try {
            startDate = df.parse(startDateString);
            String newDateString = df.format(startDate);
            System.out.println("Date is "+newDateString);
        } catch (ParseException e) {
            e.printStackTrace();
        }

【问题讨论】:

标签: java string parsing date data-conversion


【解决方案1】:

试试这个

String DateStr="2013-10-31T19:00:00Z";
    SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd");
    Date d = new SimpleDateFormat("yyyy-MM-dd").parse(DateStr); 
System.out.println(sim.format(d));

输出 2013-10-31

【讨论】:

    【解决方案2】:

    这是因为您专门告诉 Java 查找 4 位数的年份,后跟 2 位数的月份和 2 位数的日期。直接从文档中获取,您想要的是

    "yyyy-MM-dd'T'HH:mm:ssZ"
    

    【讨论】:

      【解决方案3】:

      您可以使用SimpleDateFormatparse方法解析您的日期,然后使用format方法以您喜欢的格式输出。

      试试这个:

      String startDateString = "2013-10-31T19:00:00Z";
      
      DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
      DateFormat outputFormat = new SimpleDateFormat("yyyy/MM/dd");
      
      Date date = inputFormat.parse(startDateString);
      System.out.println("Date is " + outputFormat.format(date));
      

      输出:

      Date is 2013/10/31
      

      【讨论】:

      • 会更好,如果你写一些解释,而不是仅仅代码
      【解决方案4】:

      您需要一个单独的SimpleDateFormat 来解析日期字符串。试试这个:

      String startDateString = "2013-10-31T19:00:00Z";
      DateFormat originalFormat = new SimpleDateFormat("yyyy-mm-dd'T'HH:MM:SS'Z'");
      DateFormat df = new SimpleDateFormat("yyyy/mm/dd");
      Date startDate;
      try {
          startDate = originalFormat.parse(startDateString);
          String newDateString = df.format(startDate);
          System.out.println("Date is " + newDateString);
      } catch (ParseException e) {
          e.printStackTrace();
      }
      

      【讨论】:

        【解决方案5】:

        您需要两个不同的DateFormat。一个用于解析日期,一个用于格式化日期。

         String startDateString = "2013-10-31T19:00:00Z";
        
            DateFormat df = new SimpleDateFormat("yyyy/mm/dd"); 
            DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SS'Z'"); 
            Date startDate;
            try {
                startDate =df1.parse(startDateString);
                String newDateString = df.format(startDate);
                System.out.println("Date is "+newDateString);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        

        【讨论】:

          【解决方案6】:
          SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
          String dateInString = "07/06/2013";
          
          try {
          
              Date date = formatter.parse(dateInString);
              System.out.println(date);
              System.out.println(formatter.format(date));
          
          } catch (ParseException e) {
              e.printStackTrace();
          }
          

          这是一个简单的例子

          【讨论】:

            【解决方案7】:

            试试这个:

                    try {
                        String startDateString = "2013-10-31T19:00:00Z";
                        DateFormat input = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
                        DateFormat output = new SimpleDateFormat("yyyy/MM/dd");
                        Date date = input.parse(startDateString);
                        System.out.println("Date is " + output.format(date));
                    } catch (ParseException e) {
            
                        e.printStackTrace();
                    }
            

            指出您的代码中的另一个简单错误

            你编码为DateFormat df = new SimpleDateFormat("yyyy/mm/dd");

            这里 mmminutes ,对于 month 使用 MM

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-02-09
              • 1970-01-01
              • 2013-01-21
              • 2010-12-15
              • 2011-10-25
              • 1970-01-01
              • 1970-01-01
              • 2012-06-10
              相关资源
              最近更新 更多