在Java中将FormatDate.MEDIUM转换为其他格式(LocalDate)

时间:2014-04-24 15:44:20

标签: android date converter jodatime

我在java中使用其他格式转换日期时遇到了问题(我使用JodaTime)。 事实上,我的格式化本地日期是:

24/apr/14 (Italian format date...but other local formats are possible)

我想分开日,月和年,并在输出中看到:

gg: 24
MM: 04
yyyy: 2014

如何检索此数据?

谢谢!

1 个答案:

答案 0 :(得分:1)

纠正你的假设" 24 / apr / 14"作为意大利人(JodaTime和JDK都说:d-MMM-yyyy)我发现了这种方式:

String input = "24-apr-2014";
Locale locale = Locale.ITALY;

DateTimeFormatter dtf = DateTimeFormat.mediumDate().withLocale(locale);
LocalDate date = dtf.parseLocalDate(input);

int dayOfMonth = date.getDayOfMonth();
int month = date.getMonthOfYear();
int year = date.getYear();

DecimalFormat df = new DecimalFormat("00");
String dayOfMonthAsText = df.format(dayOfMonth);
String monthAsText = df.format(month);
String yearAsText = new DecimalFormat("0000").format(year);

System.out.println(dayOfMonthAsText); // 24
System.out.println(monthAsText); // 04
System.out.println(yearAsText); // 2014

顺便说一下,为什么要提取文本组件(导致大量额外的格式化工作 - 请参阅我的代码),而不仅仅是解析的整数值?或者我误解了你?