Java中从不带“-”的日期到带“-”的日期的字符串追加
我有一个字符串20180101,需要附加-在2018和01和01之后,所以看起来像2018-01-01。Java中有没有标准的方法来实现这一点Java中从不带“-”的日期到带“-”的日期的字符串追加,java,date,date-formatting,Java,Date,Date Formatting,我有一个字符串20180101,需要附加-在2018和01和01之后,所以看起来像2018-01-01。Java中有没有标准的方法来实现这一点 LocalDate.parse( "20180101", DateTimeFormatter.BASIC_ISO_DATE ) .toString() 2018-01-01 细节 那个字符串看起来像是一个日期。我建议您将其解析为一个 您的输入字符串格式UUMMDD是标准ISO 8601的“基本”变体。time类为该格式化模式预定义了一
LocalDate.parse(
"20180101",
DateTimeFormatter.BASIC_ISO_DATE
)
.toString()
2018-01-01
细节
那个字符串看起来像是一个日期。我建议您将其解析为一个
您的输入字符串格式UUMMDD是标准ISO 8601的“基本”变体。time类为该格式化模式预定义了一个对象
默认情况下,该类会以所需的格式(标准格式)生成一个字符串
2018-01-01
上述方法在性能上有点昂贵,因此这里有一个简单的方法:
2018-01-01
细节
那个字符串看起来像是一个日期。我建议您将其解析为一个
您的输入字符串格式UUMMDD是标准ISO 8601的“基本”变体。time类为该格式化模式预定义了一个对象
默认情况下,该类会以所需的格式(标准格式)生成一个字符串
2018-01-01
上述方法在性能上有点昂贵,因此这里有一个简单的方法:
因为结果是一个字符串,所以我建议使用replaceAll,它使用正则表达式,例如:
String date = "20180101";
date = date.replaceAll("(....)(..)(..)", "$1-$2-$3");
或
因为结果是一个字符串,所以我建议使用replaceAll,它使用正则表达式,例如:
String date = "20180101";
date = date.replaceAll("(....)(..)(..)", "$1-$2-$3");
或
我不想转换成约会。我想转换成一个字符串。你可能应该加上一条评论,解析日期格式在性能方面是昂贵的。不要担心性能。或者,如果您是,在着手将代码更改为更脆弱、可读性更低的代码之前,至少要进行测试,以确定1性能是否是一个问题2在代码中花费时间的地方。此外,除了小的一次性程序外,您应该正确地进行数据建模。这包括对日期使用date类。@OleV.V。已编辑。我不想转换为日期。我想转换成一个字符串。你可能应该加上一条评论,解析日期格式在性能方面是昂贵的。不要担心性能。或者,如果您是,在着手将代码更改为更脆弱、可读性更低的代码之前,至少要进行测试,以确定1性能是否是一个问题2在代码中花费时间的地方。此外,除了小的一次性程序外,您应该正确地进行数据建模。这包括对日期使用date类。@OleV.V。已编辑。@kumesana这是正确的,您也可以使用此日期=字符串。格式%s-%s-%s,date.substring0,4,date.substring4,6,date.substring6,8@这是正确的。您也可以使用此日期=字符串。格式%s-%s-%s,date.substring0,4,date.substring4,6,date.substring6,8;
String date = "20180101";
date = date.replaceAll("(....)(..)(..)", "$1-$2-$3");
date = date.replaceAll("(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3");