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中从不带“-”的日期到带“-”的日期的字符串追加_Java_Date_Date Formatting - Fatal编程技术网

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类为该格式化模式预定义了一

我有一个字符串20180101,需要附加-在2018和01和01之后,所以看起来像2018-01-01。Java中有没有标准的方法来实现这一点

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");