在Android Studio中更改DateFormat

时间:2018-07-09 16:07:05

标签: java android simpledateformat

我有来自API的数据,数据是日期,其格式为“ 2018-07-09” 。如何在android studio中将格式更改为 2018年7月9日,星期一

3 个答案:

答案 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日,星期一

消息:

  • 从API 2018-07-09获取的日期字符串为ISO 8601格式。来自LocalDate(现代Java日期和时间API)中的java.time将这种格式解析为默认格式,即没有任何显式格式化程序。因此,不要麻烦创建一个。
  • 要向用户显示,请使用内置格式。您可以从DateTimeFormatter.ofLocalizedXxxx方法中获取它们,并可以按照上面的代码将其修改为用户的语言环境。
  • 您标记了问题simpledateformat。 SimpleDateFormat类早已过时,并且非常麻烦,因此请避免使用它。 java.time更好用。

问题:我可以在Android上使用java.time吗?

是的,java.time在较新的Android设备上都能很好地工作。它只需要至少Java 6

  • 在Java 8和更高版本以及较新的Android设备上(我被告知,从API级别26开始),内置了现代API。
  • 在Java 6和7中,获得ThreeTen Backport,即新类的backport(JSR 310的ThreeTen;请参见底部的链接)。
  • 在(较旧的)Android上,使用Android版本的ThreeTen Backport。叫做ThreeTenABP。并确保您使用子包从org.threeten.bp导入日期和时间类。

链接