DateFormat 月份转大写
DateFormat month to uppercase
如何将日期格式化为以下视图 OCTOBER 21, 2018(大写月份)?我可以通过 "%1$TB %1$te, %1$tY"
模式获取它,但我需要通过 SimpleDateFormat 来获取它。你能建议我怎么做吗?
你可以这样做:
SimpleDateFormat sdf = new SimpleDateFormat("MMMM dd, yyyy", Locale.ENGLISH);
String dateStr = sdf.format(new Date());
System.out.println( dateStr.toUpperCase() );
简要说明:
首先我们创建一个 SimpleDateFormat 的实例并将默认 "MMMM dd, yyyy" 作为参数传递,这将导致 "Month day, year".
然后我们将当前日期(new Date ()
或您的日期)传递给 class SimpleDateFormat 以进行转换。
最后,我们使用toUpperCase()
使文本大写。
希望对您有所帮助! :D
SimpleDateFormat
不能给你(尽管你可能会考虑是否可以开发一个可以的子class)。但是java.time
,现代的Java日期和时间API,可以:
Map<Long, String> monthNames = Arrays.stream(Month.values())
.collect(Collectors.toMap(m -> Long.valueOf(m.getValue()), Month::toString));
DateTimeFormatter dateFormatter = new DateTimeFormatterBuilder()
.appendText(ChronoField.MONTH_OF_YEAR, monthNames)
.appendPattern(" d, uuuu")
.toFormatter();
LocalDate date = LocalDate.of(2018, Month.OCTOBER, 21);
String formattedDate = date.format(dateFormatter);
System.out.println(formattedDate);
此代码段的输出是您所请求的:
OCTOBER 21, 2018
我假设您只需要英文版本。对于其他语言,您只需以不同方式填充地图。
这也一样,因为无论如何您都不应该使用 SimpleDateFormat
。 class 不仅早已过时,而且还以麻烦着称。 java.time
通常更好用。
Link: Oracle tutorial: Date Time 解释如何使用 java.time
.
如何将日期格式化为以下视图 OCTOBER 21, 2018(大写月份)?我可以通过 "%1$TB %1$te, %1$tY"
模式获取它,但我需要通过 SimpleDateFormat 来获取它。你能建议我怎么做吗?
你可以这样做:
SimpleDateFormat sdf = new SimpleDateFormat("MMMM dd, yyyy", Locale.ENGLISH);
String dateStr = sdf.format(new Date());
System.out.println( dateStr.toUpperCase() );
简要说明:
首先我们创建一个 SimpleDateFormat 的实例并将默认 "MMMM dd, yyyy" 作为参数传递,这将导致 "Month day, year".
然后我们将当前日期(new Date ()
或您的日期)传递给 class SimpleDateFormat 以进行转换。
最后,我们使用toUpperCase()
使文本大写。
希望对您有所帮助! :D
SimpleDateFormat
不能给你(尽管你可能会考虑是否可以开发一个可以的子class)。但是java.time
,现代的Java日期和时间API,可以:
Map<Long, String> monthNames = Arrays.stream(Month.values())
.collect(Collectors.toMap(m -> Long.valueOf(m.getValue()), Month::toString));
DateTimeFormatter dateFormatter = new DateTimeFormatterBuilder()
.appendText(ChronoField.MONTH_OF_YEAR, monthNames)
.appendPattern(" d, uuuu")
.toFormatter();
LocalDate date = LocalDate.of(2018, Month.OCTOBER, 21);
String formattedDate = date.format(dateFormatter);
System.out.println(formattedDate);
此代码段的输出是您所请求的:
OCTOBER 21, 2018
我假设您只需要英文版本。对于其他语言,您只需以不同方式填充地图。
这也一样,因为无论如何您都不应该使用 SimpleDateFormat
。 class 不仅早已过时,而且还以麻烦着称。 java.time
通常更好用。
Link: Oracle tutorial: Date Time 解释如何使用 java.time
.