我正在尝试以下列格式检索当前日期:21-FEB-17
。以特定格式获取当前日期
我有以下代码,但它不是我需要的格式。它打印出的格式如下:21-February-17.
Format formatter = new SimpleDateFormat("dd-MMMM-yy");
String today = formatter.format(new Date());
System.out.println(today);
我正在尝试以下列格式检索当前日期:21-FEB-17
。以特定格式获取当前日期
我有以下代码,但它不是我需要的格式。它打印出的格式如下:21-February-17.
Format formatter = new SimpleDateFormat("dd-MMMM-yy");
String today = formatter.format(new Date());
System.out.println(today);
为了得到这个月的 “前3个字母”,你应该使用
Format formatter = new SimpleDateFormat("dd-MMM-yy");
根据Oracle documentation of SimpleDateFormat。
这将在“骆驼”情况下(即“Feb”)打印月份。如果你想在全部大写,你需要做的
System.out.println(today.toUpperCase());
非常感谢! – robben
你的格式有和额外M
:
Format formatter = new SimpleDateFormat("dd-MMM-yy");
String today = formatter.format(new Date());
System.out.println(today.toUpperCase());
谢谢你,先生! – robben
这里是link,以帮助您更好地了解。
并回答你的问题使用下面的代码。
Format formatter = new SimpleDateFormat("dd-MMM-yy");
String today = formatter.format(new Date());
System.out.println(today.toUpperCase());
这不是你要求的答案,但它可能是你想要的答案。 :-)由于博扬佩特科维奇已经在评论已经说了,如果有什么办法可以使用Java 8中,您将要使用的新java.time
类:
final Locale myLocale = Locale.US;
String today = LocalDate.now()
.format(DateTimeFormatter.ofPattern("d-MMM-yy", myLocale))
.toUpperCase(myLocale);
System.out.println(today);
此打印:
22-FEB-17
你会注意到我为格式化程序显式使用了一个语言环境对象,并将其转换为大写字母。你最清楚你想使用哪种语言环境。您也可以在两个地方忽略语言环境参数,然后使用计算机的默认语言环境(这样您将在不同的计算机上获得不同的结果)。对于语言环境中性格式,请使用Locale.ROOT
(它将更像Locale.US
)。
我会建议使用新的Java 8时间的方法。 https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html 在那里你可以使用https://docs.oracle.com/javase/8/docs/api/ java/time/format/DateTimeFormatter.html –