我有来自API的数据,数据是日期,其格式为“ 2018-07-09” 。如何在android studio中将格式更改为 2018年7月9日,星期一?
答案 0 :(得分:1)
您可以解析字符串以使其成为对象,并用DateTimeFormatter
对其进行格式化:
DateTimeFormatter parser = DateTimeFormatter.ofPattern("yyyy-MM-dd");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE, MMMM d, yyyy", Locale.ENGLISH);
System.out.println(formatter.format(parser.parse( "2018-07-09"))); // Monday, July 9, 2018
答案 1 :(得分:0)
SimpleDateFormat fromApi = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat myFormat = new SimpleDateFormat("EEEE, MMMM d, yyyy");
try {
String reformattedStr = myFormat.format(fromApi.parse(inputString));
} catch (ParseException e) {
e.printStackTrace();
}
请参阅oracle doc,以了解更多信息。
答案 2 :(得分:0)
DateTimeFormatter dateFormatter = DateTimeFormatter
.ofLocalizedDate(FormatStyle.FULL)
.withLocale(Locale.US);
LocalDate date = LocalDate.parse("2018-07-09");
String formattedDate = date.format(dateFormatter);
System.out.println(formattedDate);
此打印:
2018年7月9日,星期一
消息:
2018-07-09
获取的日期字符串为ISO 8601格式。来自LocalDate
(现代Java日期和时间API)中的java.time
将这种格式解析为默认格式,即没有任何显式格式化程序。因此,不要麻烦创建一个。DateTimeFormatter.ofLocalizedXxxx
方法中获取它们,并可以按照上面的代码将其修改为用户的语言环境。SimpleDateFormat
类早已过时,并且非常麻烦,因此请避免使用它。 java.time
更好用。是的,java.time
在较新的Android设备上都能很好地工作。它只需要至少Java 6 。
org.threeten.bp
导入日期和时间类。java.time
。java.time
。java.time
向Java 6和7(JSR-310的ThreeTen)的反向端口。