无法将时间戳格式化为 java 中的 YYYY-MM-DD HH:mm:ss

Unable to format timestamp as YYYY-MM-DD HH:mm:ss in java

我有一个时间戳 2018 年 12 月 13 日 19:37:18,我需要将其转换为 2018-12-13 19:37:18,我正在按照以下步骤操作,但它给出的时间戳不正确

     DateFormat outputFormat = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss");
     DateFormat inputFormat = new SimpleDateFormat("DD MMM YYYY HH:mm:ss");
     Date date = inputFormat.parse(updatedStartime);
     String NewStartTime = outputFormat.format(date); 

我得到的输出为 2018-Jan-01 19:37:18,在格式化输出之前是否需要将 MMM 转换为整数月份值?获得预期输出的正确步骤是什么?

D 是 "day in year";不是 "day in month" 你真正需要的,所以 d.

Y 是 "week years";我猜你的意思是 y 代表正常年份

总而言之:

    DateFormat outputFormat = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
    DateFormat inputFormat = new SimpleDateFormat("dd MMM yyyy HH:mm:ss", Locale.US);

有关更多详细信息,请查看 javadoc https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html