提问人:Root93 提问时间:5/12/2023 更新时间:5/12/2023 访问量:88
如何使用 Java 在字符串中格式化日期?[复制]
How to format a date inside a String with Java? [duplicate]
问:
我有一个接收以下日期格式的字符串(yyyy-MM-dd ...)
"2023-03-13 12:00:02"
我需要将格式更改为以下格式(dd-MM-yyyy ...
"13-03-2023 12:00:02.000000000"
我尝试构建以下方法,但它不起作用,我也不太清楚它应该如何
String formatoFechaFinBd(String dateService) throws ParseException {
Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(dateService);
String formattedDate = new SimpleDateFormat("dd/MM/yyyy, Ka").format(date);
return formattedDate;
}
我怎样才能进行我需要的转换,以便在字符串中获取该日期格式
答:
0赞
baoyinlei
5/12/2023
#1
static String formatoFechaFinBd(String dateService) throws ParseException {
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateService);
String formattedDate = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss.SSSSSSSSS").format(date);
return formattedDate;
}
评论
3赞
Anonymous
5/12/2023
感谢您的贡献。强烈建议不要这样做。我们都应该很久以前就停止使用,因为它使用起来很麻烦。使用 java.time,moddern java 日期和时间 API。当你使用它时,要注意格式模式字母的情况。你不想要小写。SimpleDateFormat
DateTimeFormatter
hh
1赞
user16320675
5/12/2023
此外,如果使用(12 小时格式)(例如 将返回 ) || 如果输入格式有毫秒,也会出错SimpleDateFormat
hh
formatoFechaFinBd("2022-10-20 15:16:17")
"20-10-2022 03:16:17.000000000"
SSSSSSSSS
评论
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
与 - 您的解析格式需要匹配预期的输入,否则它将无法正常工作。我还鼓励您停止使用基于日期/时间的类,而是使用较新的 API"2023-03-13 12:00:02"
String
java.util
java.time
SimpleDateFormat
LocalDateTime.parse(dateService, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")).format(DateTimeFormatter.ofPattern("dd/MM/yyyy, HH:mm:ss.nnnnnnnn"))
SimpleDateFormat
Date
LocalDateTime
DateTimeFormatter
LocalDateTime .parse("2023-03-13 12:00:02", DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss")) .format(DateTimeFormatter.ofPattern("dd-MM-uuuu HH:mm:ss.SSSSSSSSS"))
.它产生 .13-03-2023 12:00:02.000000000