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

时间:2011-02-25 19:56:19

标签: java date simpledateformat date-formatting

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

显示日期

用于例如:

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

我想要一种格式,可以帮助我显示一周中的某一天,例如2011-02-MON或其他任何内容。我只想用一个月和一年的字符显示星期几。你能告诉我这样的格式吗?

6 个答案:

答案 0 :(得分:265)

这应该显示'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());

答案 1 :(得分: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));

答案 2 :(得分:4)

SimpleDateFormat sdf=new SimpleDateFormat("EEE");

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

对于完整的程序,您可以查看以下给定的链接

http://java-interview-questions.com/how-to-display-day-of-week-in-java/

答案 3 :(得分:3)

使用“E”

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

JavaDocs for SimpleDateFormat

答案 4 :(得分:3)

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 week编号方案感兴趣:yyyy-Www-d

  

2018-W01-2

第1周有日历年的第一个星期四。周从星期一开始。一年有52或53周。日历年的最后/前几天可以在下一个/上一周的基础上着陆。

结尾的单个数字是星期几,星期一到星期日是1-7。

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

关于 java.time

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

现在位于Joda-Timemaintenance mode项目建议迁移到java.time类。

要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310

从哪里获取java.time类?

ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如IntervalYearWeekYearQuartermore

答案 5 :(得分:0)

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

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

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