如何在Java中重新格式化字符串日期

时间:2014-07-15 15:02:34

标签: java

我在VB中解决了这个问题,并认为我可以轻松地将其转换为Java。输入以格式的字符串形式出现: "毫米/日/年" 我想将其更改为以下格式: " MM / DD / YY" 最后两年的数字仅显示在哪里。我写了这篇VB一段时间,这就是这样:

Function DateFormat(ByVal myDate As String) As String
    Dim reformat As Date
    reformat = Date.Parse(myDate, Nothing)
    Return Format(reformat, "MM/dd/yy").ToString()
End Function

如何在Java中执行完全相同的操作,以便正确地重新格式化日期并以最初的字符串形式返回?我有类似的东西,但它无法正常工作:

    public static String DateFormat(String myDate){
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        try{
            Date formattedDate = formatter.parse(myDate);
            return formattedDate.toString();
        }catch(Exception e){
            e.printStackTrace();
            return null;
        }
    }

我不确定如何使其成为我需要的格式,因为我无法找到类似于VB所具有的Format()函数。提前谢谢。

4 个答案:

答案 0 :(得分:2)

如果我理解您的问题,您可以使用一对SimpleDateFormat(s)

private static final String formatIn = "MM/dd/yyyy";
private static final String formatOut = "MM/dd/yy";
private static final DateFormat sdfIn = new SimpleDateFormat(
    formatIn);
private static final DateFormat sdfOut = new SimpleDateFormat(
    formatOut);

public static String formatDateString(String dateIn)
    throws ParseException {
  return sdfOut.format(sdfIn.parse(dateIn));
}

public static void main(String[] args) {
  try {
    System.out.println(formatDateString("07/15/2014"));
  } catch (ParseException e) {
    e.printStackTrace();
  }
}

输出

07/15/14

答案 1 :(得分:2)

试试这个:

  public static String DateFormat(String myDate) throws ParseException {
    SimpleDateFormat inFormat = new SimpleDateFormat("MM/dd/yyyy");
    SimpleDateFormat outFormat = new SimpleDateFormat("MM/dd/yy");    

    Date parsedInDate = inFormat.parse(myDate);
    return outFormat.format(parsedInDate);
  }

首先,我们声明两个日期格式化程序,然后我们从输入String创建Date对象,最后我们以新格式生成String。

答案 2 :(得分:0)

SimpleDateFormat采用多种不同的格式。我相信你想要的格式已经内置,可以这样访问...

Date date = new Date();

Format formatter = new SimpleDateFormat("MM/dd/yy");
String s = formatter.format(date);
System.out.println(s);

答案 3 :(得分:0)

你基本上几乎得到它,只需要应用新的格式。

public static String DateFormat(String myDate){
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
    try{
        Date date = formatter.parse(myDate);
        formatter.applyPattern("MM/dd/yy");
        return formatter.format(date);
    }catch(Exception e){
        e.printStackTrace();
        return null;
    }
}