在 Java (Android Studio) 中,我有一个从数据库 (Firebase) 中获取的字符串,如 20190329
这是一个日期,但我想以这种格式打印出来:29-03-2019
。所以,我只需要将 2019
移到字符串的末尾,将 29
移到字符串的开头。我知道这可以通过使用循环来完成,但是有没有更简单的方法来实现它?
我已经有了添加 -
并且运行良好的代码:
StringBuilder sb = new StringBuilder(date); //the variable 'date' contains 20190329 or any other date from the database.
sb.insert(2, "-");
sb.insert(5, "-");
sb.insert(8, "-");
最佳答案
您可以而且应该使用 java.time
来解析和格式化日期对象:
public static void main(String[] args) {
// use a LocalDate and a DateTimeFormatter with a fitting format to parse the String
LocalDate date = LocalDate.parse("20190329", DateTimeFormatter.ofPattern("yyyyMMdd"));
// print it (or return it as String) using a different format
System.out.println(date.format(DateTimeFormatter.ofPattern("dd-MM-yyyy")));
}
这段代码的输出是
29-03-2019
大多数 java.time
功能在 ThreeTen-Backport 中向后移植到 Java 6 和 Java 7项目。
在 ThreeTenABP 中进一步适用于早期的 Android(< API 级别 26) .
关于java - 如何移动字符串中的字符位置以实现日期格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58836334/