Mig*_*rra 4 java datetime datetime-format android-studio
我从JSON API获得一个日期,看起来像这样的"2018-04-10T04:00:00.000Z".我想转换它以获得Date或String对象并获得类似"01-04-2018"的"dd-MM-YYYY".我该怎么做?
Tam*_*Rev 25
DateTimeFormat,在java 8中引入:我们的想法是定义两种格式:一种用于输入格式,另一种用于输出格式.使用输入格式化程序进行解析,然后使用输出格式化程序进行格式化.
您的输入格式看起来很标准,除了尾随Z.无论如何,让我们来处理这个:"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'".尾随'Z'是有趣的部分.通常这里有时区数据,比如-0700.所以模式就是...Z,即没有撇号.
输出格式更简单:"dd-MM-yyyy".介意小 - y.
这是示例代码:
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("dd-MM-yyy", Locale.ENGLISH);
LocalDate date = LocalDate.parse("2018-04-10T04:00:00.000Z", inputFormatter);
String formattedDate = outputFormatter.format(date);
System.out.println(formattedDate); // prints 10-04-2018
Run Code Online (Sandbox Code Playgroud)
SimpleDateFormatSimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
SimpleDateFormat outputFormat = new SimpleDateFormat("dd-MM-yyyy");
Date date = inputFormat.parse("2018-04-10T04:00:00.000Z");
String formattedDate = outputFormat.format(date);
System.out.println(formattedDate); // prints 10-04-2018
Run Code Online (Sandbox Code Playgroud)
Deb*_*was 10
使用日期模式yyyy-MM-dd'T'HH:mm:ss.SSS'Z'和 Java 8 你可以做
String string = "2018-04-10T04:00:00.000Z";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH);
LocalDate date = LocalDate.parse(string, formatter);
System.out.println(date);
Run Code Online (Sandbox Code Playgroud)
更新:26 年前使用 Joda 时间
String string = "2018-04-10T04:00:00.000Z";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
LocalDate date = org.joda.time.LocalDate.parse(string, formatter);
Run Code Online (Sandbox Code Playgroud)
在 app/build.gradle 文件中,添加如下 -
dependencies {
compile 'joda-time:joda-time:2.9.4'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
112163 次 |
| 最近记录: |