【问题标题】:Java date format convert on AndroidAndroid上的Java日期格式转换
【发布时间】:2014-01-03 09:03:46
【问题描述】:

我有如下日期字符串:

Fri, 19 Jul 2013 01:30:22 GMT
Thu, 12 Sep 2013 19:19:18 GMT

我想转换成以下格式:

2013/07/19 01:30:22
2013/09/12 19:19:18

首先,我使用下面的代码来解析日期:

DateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
Date date = dateFormat.parse("Fri, 23 Aug 2013 01:10:35 GMT");

但它在Date date = dateFormat.parse("Fri, 23 Aug 2013 01:10:35 GMT"); 行显示以下异常:

java.text.ParseException: Unparseable date: "Fri, 23 Aug 2013 01:10:35 GMT" (at offset 0)

如何修改?

【问题讨论】:

    标签: java android date


    【解决方案1】:

    试试这个

    DateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ENGLISH);
    

    您的默认语言可能不是英语,并且不接受周五和八月

    【讨论】:

      【解决方案2】:

      使用此代码

      String dateString = "Fri, 19 Jul 2013 01:30:22 GMT";
      
          SimpleDateFormat simple = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
          Date date;
          try {
              date = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z")
                      .parse(dateString);
              Log.e("result", "Date:" + simple.format(date));
      
          } catch (Exception e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
      

      【讨论】:

        【解决方案3】:

        试试这个

        String DateStr="Fri, 19 Jul 2013 01:30:22 GMT";
            SimpleDateFormat sim=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
            Date d = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z").parse(DateStr); 
        System.out.println(sim.format(d));
        

        【讨论】:

          【解决方案4】:

          你可以这样。

          String newDate = date.getYear()+"/"+date.getMonth()+"/"+date.getDay() and ect.
          

          或者你可以编写自己的转换方法

          String myConvert(Date date)
          {
          return date.getYear()+"/"+date.getMonth()+"/"+date.getDay()+ect.
          }
          

          【讨论】:

          • 方法date.getYear()date.getMonth() 等已弃用。请参阅 Java 7 文档java.util.Date
          • 我想使用 java.util.Calendar
          【解决方案5】:

          你可以试试这个

          DateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
          Date date = dateFormat.parse("Fri, 23 Aug 2013 01:10:35 GMT");
          String formattedString=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").
                                                               format(date).toString();
          System.out.println(formattedString);
          

          【讨论】:

            【解决方案6】:

            试试

            String           dateStr = "Fri, 19 Jul 2013 01:30:22 GMT";
            SimpleDateFormat sdf     = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
            Date             date    = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z").parse(dateStr); 
            System.out.println(sdf.format(date));
            

            【讨论】:

              【解决方案7】:
              SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
              Date date = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
              date.parse("Fri, 19 Jul 2013 01:30:22 GMT");
              String newDate = simpleDateFormat.format(date);
              

              【讨论】:

                【解决方案8】:

                尝试使用“格式”:

                SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
                String date = "";
                try {
                   date = dateFormat.format("Fri, 23 Aug 2013 01:10:35 GMT");
                } catch(Exception e){
                   e.printStackTrace();
                }
                

                【讨论】:

                • 这不会编译(引号被省略)。此外,它与 OP 尝试的并没有真正的不同。正确的答案是选择英语语言环境。
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2019-08-03
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多