MM / DD / YY中的日期转换h:mm:ss Java中的格式

时间:2018-10-05 09:12:12

标签: java date datetime

我正在尝试使用2018年9月4日获得这个日期09/03/18 6:30:00 PM,但是我正在获得12/364/17 6:30:00 PM,这是我尝试过的。

public class StockBuySell 

{      

    static String  DATE_FORMAT_UI = "DD-MMM-YYYY";


    public static void main(String args[]) throws Exception {

        DateFormat outputFormat = new SimpleDateFormat("MM/DD/YY h:mm:ss a");
        outputFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
        DateFormat inputFormat = new SimpleDateFormat(DATE_FORMAT_UI);

        String inputText = "4-SEP-2018";
        Date date = inputFormat.parse(inputText);
        String outputText = outputFormat.format(date);
        System.out.println(outputText);

    }
}

2 个答案:

答案 0 :(得分:2)

根据JavaDocD代表 中的天。您将需要用DD(每月的某天)替换dd

Y代表周年,而不是年。

简而言之,这个"DD-MMM-YYYY"必须是这样的:"dd-MMM-yyyy"

答案 1 :(得分:0)

尝试一下:

String  DATE_FORMAT_UI = "dd-MMM-yyyy";

DateFormat outputFormat = new SimpleDateFormat("MM/dd/yy h:mm:ss a");
outputFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
DateFormat inputFormat = new SimpleDateFormat(DATE_FORMAT_UI);

String inputText = "4-SEP-2018";
Date date = inputFormat.parse(inputText);
String outputText = outputFormat.format(date);
System.out.println(outputText);

在强制执行格林尼治标准时间时,您将遇到时区问题。呈现的日期将在本地时区,因此它可能会更改日期。