我的函数总是只返回当前日期

时间:2013-09-20 06:29:13

标签: android

我的代码中的方法始终返回当前日期

的问题是什么

我只想更改日期格式

我错过了什么吗?

...
String mydate;

mydate=ConvertToDate("2013/09/25");



  private String ConvertToDate(String dateString){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date convertedDate = new Date();
        try {
            convertedDate = dateFormat.parse(dateString);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        String newdate;
        newdate =  dateFormat.format(convertedDate);
        return newdate;
    }

4 个答案:

答案 0 :(得分:2)

抛出parseException的上述代码改为:

 private static  String ConvertToDate(String dateString){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
        Date convertedDate = new Date();
        try {
            convertedDate = dateFormat.parse(dateString);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        String newdate;
        SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");

        newdate =  dateFormat1.format(convertedDate);
        return newdate;
    }

答案 1 :(得分:0)

你选择了错误的模式。您的日期是2013/09/25,因此您的模式应为yyyy / MM / dd。

在您的代码中提供异常,在try catch块之前,您使用新的Date()初始化日期。所以在异常之后你的convertedDate变量显示当前日期。

你必须改变

new SimpleDateFormat("yyyy-MM-dd") 

new SimpleDateFormat("yyyy/MM/dd")

您的回答是评论。我在这里写给你。

private static String ConvertToDate(String dateString){
      SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
      SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy/MM/dd");
      Date convertedDate = new Date();
      try {
          convertedDate = dateFormat.parse(dateString);
      } catch (ParseException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }

      String newdate;
      newdate =  dateFormat2.format(convertedDate);
      return newdate;
  }
}

答案 2 :(得分:0)

// Convert Date formate function
    public static String converDateFormate(String dateString) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("YYYY/mm/dd");
        Date testDate = null;
        testDate = sdf.parse(dateString);
        SimpleDateFormat formatter = new SimpleDateFormat("YYYY-mm-dd");
        String newFormat = formatter.format(testDate);
        System.out.println("" + newFormat);
        return newFormat;
    }

使用它:

converDateFormate("2013/12/20");

答案 3 :(得分:0)

使用applyPattern,这就是全部

    String OLD_FORMAT = "yyyy/MM/dd";
    String NEW_FORMAT = "yyyy-MM-dd";


    String oldDateStr = "2013/09/25";
    String newDateStr;

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(OLD_FORMAT);
    Date date = simpleDateFormat.parse(oldDateStr);
    simpleDateFormat.applyPattern(NEW_FORMAT);
    newDateStr = simpleDateFormat.format(date);

    System.out.println(newDateStr);

输出:

2013-09-25