我在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()函数。提前谢谢。
答案 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;
}
}