java中有没有一种日期格式来显示星期几?

问题描述 投票:0回答:6

我知道日期格式,例如

"yyyy-mm-dd"
- 以
2011-02-26

格式显示日期
"yyyy-MMM-dd"
- 以
2011-FEB-26

格式显示日期

用于例如:

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

我想要一种可以帮助我显示星期几的格式,例如

2011-02-MON
或其他内容。我只想将星期几与月份和年份一起显示在字符中。你能告诉我这样的格式吗?

java date simpledateformat date-formatting
6个回答
425
投票

这应该显示“星期二”:

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());

20
投票

是的 - “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));

7
投票
SimpleDateFormat sdf=new SimpleDateFormat("EEE");

EEE 代表星期几,例如星期四显示为 Thu。


7
投票

tl;博士

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

java.time

现代方法使用 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

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

末尾的个位数是星期几,1-7 表示周一至周日。

ThreeTen-Extra 库类添加到您的项目中的

YearWeek
类。


关于 java.time

java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如

java.util.Date
Calendar
SimpleDateFormat

Joda-Time项目现在处于维护模式,建议迁移到java.time类。

要了解更多信息,请参阅 Oracle 教程。并在 Stack Overflow 上搜索许多示例和解释。规格为JSR 310

从哪里获取java.time类?

ThreeTen-Extra 项目通过附加类扩展了 java.time。该项目是 java.time 未来可能添加的内容的试验场。您可能会在这里找到一些有用的类,例如

Interval
YearWeek
YearQuarter
more


3
投票

使用“E”

请参阅日期和时间模式部分:

SimpleDateFormat 的 JavaDocs


2
投票

我知道问题是如何将星期几作为字符串(例如短名称),但是对于任何正在寻找数字星期几的人(就像我一样),您可以使用新的“u”格式字符串,从 Java 7 开始支持。例如:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.