首页 > 解决方案 > 如何剪切 LocalDateTime 格式字符串以将年份从 4 位限制为 2 位?

问题描述

例如,我有一个带有日期和时间的字符串11/12/2020 10:45,因此采用这种格式。我想剪掉它,让它的第 7 和第 8 个字符消失,所以我喜欢11/12/20 10:45。我该怎么做?我一直在寻找.split()Strings 的方法,但它不会减少字符数,而是使用正则表达式。

标签: javastringsplitlocaldatetime

解决方案


我有一个带日期的字符串。我想剪掉它,让它的 7 和 8 字符消失。

当然,这是可行的——这就是substring目的。但这不是你的问题。你的问题是:我有个约会;我希望以某种方式呈现它。有一种不好的方法可以解决这个涉及子字符串的问题,而您现在正在询问有关解决问题的坏策略的问题。让我们不要为支持解决潜在问题的愚蠢方向的答案而烦恼。split同样是字符串操作。

好的,那我该怎么做呢?

只要有可能,如果你有一个明确定义的概念,那么就使用它。你有约会的概念。希望它是一个实例的形式LocalDateTime。如果不是,那么让我们实现它:

String input = "2022-12-10 14:10:45";
DateTimeFormatter IN_FORMAT = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
// adjust the pattern to match whatever you have, of course.
LocalDateTime mark = LocalDateTime.parse(input, IN_FORMAT);

现在我们有了一个 LDT 实例,工作就变成了:好的,那么如何将其格式化为字符串,以便年份只使用 2 位数字?这很容易。

DateTimeFormatter OUT_FORMAT = DateTimeFormatter.ofPattern("dd-MM-uu HH:mm");
String out = OUT_FORMAT.format(mark);

推荐阅读