我知道日期格式,例如
"yyyy-mm-dd"
- 以2011-02-26
格式显示日期
"yyyy-MMM-dd"
- 以格式2011-FEB-26
用于例如:
SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy/MMM/dd ");
我想要一种格式,可以帮助我显示一周中的某一天,例如2011-02-MON
或其他任何内容。我只想用一个月和一年的字符显示星期几。你能告诉我这样的格式吗?
答案 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)
答案 4 :(得分:3)
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 week编号方案感兴趣:yyyy-Www-d
。
2018-W01-2
第1周有日历年的第一个星期四。周从星期一开始。一年有52或53周。日历年的最后/前几天可以在下一个/上一周的基础上着陆。
结尾的单个数字是星期几,星期一到星期日是1-7。
将 ThreeTen-Extra 库类添加到YearWeek
类的项目中。
java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.Date
,Calendar
和& SimpleDateFormat
现在位于Joda-Time的maintenance mode项目建议迁移到java.time类。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
从哪里获取java.time类?
ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如Interval
,YearWeek
,YearQuarter
和more。
答案 5 :(得分:0)
我知道问题在于将星期几作为字符串(例如简称),但是对于正在寻找星期几(例如我)的任何人,您都可以使用新的“ u”格式字符串,从Java 7开始受支持。例如:
new SimpleDateFormat("u").format(new Date());
返回今天的星期几指数,即:1 =星期一,2 =星期二,...,7 =星期日。