Joda-time 从 LocalDateTime 字符串到 LocalDate
Joda-time from LocalDateTime string to LocalDate
我正在使用 JodaTime 获取创建帐户的日期和时间。格式为
2017-04-05T12:38:35.585
当我得到它时,我将它作为字符串存储在我的数据库中,所以我四处寻找将它从字符串格式化为 LocalDate 的方法,但我在网上找到的任何东西都没有成功。在我看来,我的下一步是一个可怕的解决方案,循环遍历字符串,直到找到 T 并删除它后面的所有内容。所以我只剩下
2017-04-05.
但如果可能的话,最好将日期设置为
05/04/2017
使用 ISODateTimeFormat
得到 LocalDateTime
并由此得到 LocalDate
。
注意使用正确的Locale
String input="2017-04-05T12:38:35.585";
LocalDateTime ldt = ISODateTimeFormat.localDateOptionalTimeParser()
.withLocale(Locale.ENGLISH)
.parseLocalDateTime(input);
System.out.println(ldt.toLocalDate());//prints 2017-04-05
我正在使用 joda-time 2.7。
LocalDateTime
class 有一个接受 String
并解析它的构造函数。然后你只需使用你想要的模式调用 toString()
方法:
String input = "2017-04-05T12:38:35.585";
LocalDateTime d = new LocalDateTime(input);
System.out.println(d.toString("dd/MM/yyyy"));
输出:
05/04/2017
注意:你也可以使用ISODateTimeFormat
来解析并使用DateTimeFormatter
而不是toString()
来获得输出:
LocalDateTime d = ISODateTimeFormat.localDateOptionalTimeParser().parseLocalDateTime(input);
DateTimeFormatter fmt = DateTimeFormat.forPattern("dd/MM/yyyy");
System.out.println(fmt.print(d));
输出是一样的。
我正在使用 JodaTime 获取创建帐户的日期和时间。格式为
2017-04-05T12:38:35.585
当我得到它时,我将它作为字符串存储在我的数据库中,所以我四处寻找将它从字符串格式化为 LocalDate 的方法,但我在网上找到的任何东西都没有成功。在我看来,我的下一步是一个可怕的解决方案,循环遍历字符串,直到找到 T 并删除它后面的所有内容。所以我只剩下
2017-04-05.
但如果可能的话,最好将日期设置为
05/04/2017
使用 ISODateTimeFormat
得到 LocalDateTime
并由此得到 LocalDate
。
注意使用正确的Locale
String input="2017-04-05T12:38:35.585";
LocalDateTime ldt = ISODateTimeFormat.localDateOptionalTimeParser()
.withLocale(Locale.ENGLISH)
.parseLocalDateTime(input);
System.out.println(ldt.toLocalDate());//prints 2017-04-05
我正在使用 joda-time 2.7。
LocalDateTime
class 有一个接受 String
并解析它的构造函数。然后你只需使用你想要的模式调用 toString()
方法:
String input = "2017-04-05T12:38:35.585";
LocalDateTime d = new LocalDateTime(input);
System.out.println(d.toString("dd/MM/yyyy"));
输出:
05/04/2017
注意:你也可以使用ISODateTimeFormat
来解析并使用DateTimeFormatter
而不是toString()
来获得输出:
LocalDateTime d = ISODateTimeFormat.localDateOptionalTimeParser().parseLocalDateTime(input);
DateTimeFormatter fmt = DateTimeFormat.forPattern("dd/MM/yyyy");
System.out.println(fmt.print(d));
输出是一样的。