是否有日期格式在java中显示星期几?

rog*_*one 118 java date simpledateformat date-formatting

我知道日期格式,例如
"yyyy-mm-dd"-which以格式2011-02-26
"yyyy-MMM-dd"显示日期 - 以格式显示日期2011-FEB-26

用于例如:

SimpleDateFormat formatter = new SimpleDateFormat(
                "yyyy/MMM/dd ");
Run Code Online (Sandbox Code Playgroud)

我想要一种可以帮助我显示星期几的格式2011-02-MON.我只想用一个月和一年的字符显示星期几.你能告诉我这样的格式吗?

Nat*_*ger 291

这应该显示'Tue':

new SimpleDateFormat("EEE").format(new Date());
Run Code Online (Sandbox Code Playgroud)

这应该显示'星期二':

new SimpleDateFormat("EEEE").format(new Date());
Run Code Online (Sandbox Code Playgroud)

这应该显示'T':

new SimpleDateFormat("EEEEE").format(new Date());
Run Code Online (Sandbox Code Playgroud)

所以你的具体例子是:

new SimpleDateFormat("yyyy-MM-EEE").format(new Date());
Run Code Online (Sandbox Code Playgroud)

  • 美丽的方案!我想要的是:2016年4月4日星期一.所以在我的情况下,`new SimpleDateFormat("EEEE,dd/MM/yyyy");`如果它在将来帮助某人. (4认同)
  • 好的,它有效。`EEEE` 显示一周中某一天的全名 - 即“星期一”、“星期二”等。 (2认同)

too*_*kit 16

是的 - '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));
Run Code Online (Sandbox Code Playgroud)

  • 在javadocs的url中看到oracle仍然感觉很奇怪. (5认同)

小智 5

SimpleDateFormat sdf=new SimpleDateFormat("EEE");
Run Code Online (Sandbox Code Playgroud)

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


Bas*_*que 5

tl;博士

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

时间

现代方法使用 java.time 类。

LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
Run Code Online (Sandbox Code Playgroud)

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

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

ISO 8601

顺便说一下,您可能对标准ISO 8601 周编号方案感兴趣:yyyy-Www-d.

2018-W01-2

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

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

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


关于java.time

java.time框架是建立在Java 8和更高版本。这些类取代了麻烦的旧的遗留日期时间类,例如java.util.Date, Calendar, & SimpleDateFormat

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

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

从哪里获得 java.time 类?

ThreeTen-额外项目与其他类扩展java.time。该项目是未来可能添加到 java.time 的试验场。你可能在这里找到一些有用的类,比如IntervalYearWeekYearQuarter,和更多