使用
LocalDateTime#parse()(如果字符串恰好包含时区部分,则为
ZonedDateTime#parse())将特定模式中的字符串解析为LocalDateTime。
String oldstring = "2011-01-18 00:00:00.0";
LocalDateTime datetime = LocalDateTime.parse(oldstring, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S"));
String newstring = datetime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println(newstring); // 2011-01-18
或者,当你还没有使用Java 8时,使用SimpleDateFormat#parse()将某个模式中的字符串解析为一个日期。
String oldstring = "2011-01-18 00:00:00.0";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(oldstring);
String newstring = new SimpleDateFormat("yyyy-MM-dd").format(date);
System.out.println(newstring); // 2011-01-18
也可以看看:
更新:根据您的失败尝试:模式区分大小写。阅读java.text.SimpleDateFormat javadoc单个零件代表什么。例如,M表示月,M表示分钟。此外,年存在四个数字yyyy,而不是五个yyyyy。仔细看看我在上面发布的代码片段。