如何将LocalDateTime从一种格式转换为另一种并返回LocalDateTime类型
问题解答
首先要明确一个核心概念:LocalDateTime是不带格式的时间对象,它只存储年、月、日、时、分、秒等时间数值信息,所谓的“格式”是把这个对象转换成字符串时的显示规则。因此不存在“转换LocalDateTime的格式”这种操作——格式属于字符串,不属于LocalDateTime对象本身。
你的业务需求要返回LocalDateTime类型,其实不需要对原对象做任何“格式转换”,因为原对象已经代表了你需要的那个时间点。你之前的代码里的localDateTime3就是符合要求的LocalDateTime实例,后续如果需要按指定格式输出,只在转字符串的时候用DateTimeFormatter处理就行。
修正后的代码示例:
String time1 = "2019-08-08T09:17:31.795306"; // 解析字符串为LocalDateTime对象(存储的是时间点,无格式) LocalDateTime localDateTime3 = LocalDateTime.parse(time1); // 当需要按指定格式输出时,再将对象转为字符串 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); String formattedStr = localDateTime3.format(formatter); System.out.println(formattedStr); // 业务逻辑直接返回这个LocalDateTime对象即可 // return localDateTime3;
如果你的真实需求是从一种格式的字符串得到另一种格式的字符串,同时中间要保留LocalDateTime对象,那流程就是:旧格式字符串 → 解析为LocalDateTime → 按新格式转为字符串,而LocalDateTime对象本身始终是同一个时间点的载体,不需要修改。
内容的提问来源于stack exchange,提问作者Stack8
相关产品推荐
相关产品推荐

