Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将格式为yyyy-MM-dd HH:MM:ss.SSS的字符串日期转换为字符串MM/dd/yyyy_Java_Date - Fatal编程技术网

Java 将格式为yyyy-MM-dd HH:MM:ss.SSS的字符串日期转换为字符串MM/dd/yyyy

Java 将格式为yyyy-MM-dd HH:MM:ss.SSS的字符串日期转换为字符串MM/dd/yyyy,java,date,Java,Date,我正在尝试将格式为“yyyy-MM-dd HH:MM:ss.SSS”的字符串日期转换为字符串“MM/dd/yyyy” 我的代码是这样的: SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); String dateInString = "2015-07-16 17:07:21"; try { Date date = formatter.parse(dateInString); System.out.pri

我正在尝试将格式为“yyyy-MM-dd HH:MM:ss.SSS”的字符串日期转换为字符串“MM/dd/yyyy”

我的代码是这样的:

SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
String dateInString = "2015-07-16 17:07:21";
try {
    Date date = formatter.parse(dateInString);
    System.out.println(formatter.format(date));
} catch (ParseException e) {
    e.printStackTrace();
}
我得到一个错误:

java.text.ParseException:无法解析的日期:“2015-07-16 17:07:21”在 java.base/java.text.DateFormat.parse(DateFormat.java:395)位于 main(MyClass.java:10)


请让我知道我应该如何解决这个问题。我知道这可能是重复的,但我没有找到任何运气。谢谢。

首先将日期中的字符串转换为以下格式:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateInString = "2015-07-16 17:07:21";
try {
    Date date = formatter.parse(dateInString);
    //And then apply the pattern
    formatter.applyPattern("MM/dd/yyyy");
    System.out.println(formatter.format(date));
} catch (ParseException e) {
    e.printStackTrace();
}
试试这个

String dateInString = "2015-07-16 17:07:21"
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-ss HH:mm:ss");
SimpleDateFormat outputFormat = new SimpleDateFormat("MM/dd/yyyy");
try {
    Date date = inputFormat.parse(dateInString);
    System.out.println("Date ->" + outputFormat.format(date));
} catch (ParseException e) {
    e.printStackTrace();
}

日期格式与字符串完全不匹配。无法使用格式更改已有的日期字符串。您必须手动将日期字符串更改为所需的日期。这意味着无论你从哪里获取日期字符串,都需要以不同的方式提供给你,或者你需要进行一些巧妙的字符串操作,以使其达到你想要的格式你需要2个SimpleDateFormat。一个用于输入,一个用于输出。您需要两个SimpleDataFormatter。一个用于解析
yyyy-MM-dd HH:MM:ss.SSS
格式,另一个用于将其格式化为
MM/dd/yyyy
格式。目前,您尝试使用相同的方法对其进行解析和格式化。如果@KevinCruijssen在您希望执行的操作中是正确的,请检查jhamon在您代码上方发送的链接当前不起作用。要么将
.SSS
从格式化程序中删除,要么将毫秒添加到dateInString中。你说得对,谢谢,我只是复制了那个家伙使用的模式。我知道,我在我现在删除的答案中也做了同样的操作(你比我快了1分钟,投了赞成票)。;)当我创建添加到我的答案时注意到了它,它给出了一个解析错误。哈哈哈,非常感谢。干杯