是否有一个日期格式来显示在 Java 中的星期几?

我知道日期格式,比如
2011-02-26格式显示日期
2011-FEB-26格式显示日期

例如:

SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy/MMM/dd ");

我想要一个格式,这将有助于我显示一周的一天,如 2011-02-MON或任何东西。我只是希望一周中的某一天能够以月份和年份的字符显示出来。你能告诉我这样的格式吗?

214570 次浏览

这里应该显示“ Tue”:

new SimpleDateFormat("EEE").format(new Date());

这里应该显示“星期二”:

new SimpleDateFormat("EEEE").format(new Date());

这里应该显示“ T”:

new SimpleDateFormat("EEEEE").format(new Date());

所以你的具体例子是:

new SimpleDateFormat("yyyy-MM-EEE").format(new Date());

没错,就是“ E”

Http://download.oracle.com/javase/6/docs/api/java/text/simpledateformat.html

Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-E");
System.out.println(df.format(date));

用“ E”

参见 日期和时间模式的章节:

用于 SimpleDateFormat 的 JavaDocs

SimpleDateFormat sdf=new SimpleDateFormat("EEE");

EEE 表示一周中的某一天,例如星期四显示为 Thu。

博士

LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US )  )

爪哇时间

现代方法使用 java.time 类。

LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;

请注意,我们如何指定 Locale(如 Locale.CANADA_FRENCH)来确定用于翻译当天名称的人类语言。

DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;

ISO 8601

顺便说一下,你可能会对标准的 ISO 8601周编号感兴趣: yyyy-Www-d

2018-W01-2

第一周是一年中的第一个星期四。一周从星期一开始。一年有52或53周。一个日历年的最后/最初几天可能落在下一/上一周为基础的一年。

结尾处的单位数字是一周中的某一天,周一至周日为1-7。

310-号外库类添加到 YearWeek类的项目中。


关于 爪哇时间

< em > java.time 框架内置于 Java8及更高版本中。这些类取代了令人讨厌的旧的 遗产日期时间类,如 java.util.DateCalendarSimpleDateFormat

现在在 维修模式中的 尤达时间项目建议迁移到 爪哇时间类。

要了解更多,请参阅 < em > Oracle 教程 。并搜索堆栈溢出许多例子和解释。规范是 JSR 310

从哪里获得 java.time 类?

  • Java SE 8 < strong > JavaSE9 和更高版本
    • 内置的。
    • 带有捆绑实现的标准 JavaAPI 的一部分。
    • Java9添加了一些次要的特性和修复。
  • Java SE 6 和 < a href = “ https://en.wikipedia.org/wiki/Java _ version _ history # Java _ SE _ 7”rel = “ noReferrer”> < strong > Java SE 7
  • 仿生人
    • Java.time 类的 Android 捆绑包实现的后续版本。
    • 对于早期的 Android,项目适用于 310-后端口(上面提到过)。

< strong > Three Ten-Ultra 项目使用其他类扩展 java.time。这个项目是将来可能添加 java.time 的试验场。您可以在这里找到一些有用的类,比如 IntervalYearWeekYearQuarter更多

我知道这个问题是关于把星期几作为字符串(例如短名称) ,但是对于任何想要查找星期几的人(就像我一样) ,你可以使用新的“ u”格式字符串,这是从 Java 7开始就支持的。例如:

new SimpleDateFormat("u").format(new Date());

返回今天的星期一指数,即: 1 = 星期一,2 = 星期二,... ,7 = 星期日。